Заголовок ReastEasy Http для клиентского запроса

Я получаю доступ к веб-службе отдыха, используя RestEasy ClienTRequest API. Как я могу установить заголовок http для запроса клиента.

Мне нужно добавить следующую пару значений имени в качестве заголовка http.

username   raj
password   raj

это код клиента

public void getResponse(String uri, Defect defect)   {

         StringWriter writer = new StringWriter();
         try{
         JAXBContext jaxbContext = JAXBContext.newInstance(Defect.class);
         Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
         jaxbMarshaller.marshal(defect, writer);
         }catch( JAXBException e){

         }

        //Define the API URI where API will be accessed
        ClientRequest request = new ClientRequest("https://dev.in/rest/service/create");

        //Set the accept header to tell the accepted response format
        request.body("application/xml", writer.getBuffer().toString());
       // request.header("raj", "raj");
        //Send the request
        ClientResponse response;
        try {
            response = request.post();
             int apiResponseCode = response.getResponseStatus().getStatusCode();
             if(response.getResponseStatus().getStatusCode() != 201)
                {
                    throw new RuntimeException("Failed with HTTP error code : " + apiResponseCode);
                }
             System.out.println("response "+response.toString());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        //First validate the api status code




    }

заранее спасибо

Пробовал этот кокс. но не работает

Map<String, String> headerParam = new HashMap<String, String>(); headerParam.put("username", "raj"); headerParam.put("password", "raj"); request.header(HttpHeaders.ACCEPT, headerParam);

person Rosh    schedule 29.09.2014    source источник
comment
Map‹String, String› headerParam = new HashMap‹String, String›(); headerParam.put(имя пользователя, радж); headerParam.put(пароль, радж); request.header(HttpHeaders.ACCEPT, headerParam);   -  person Rosh    schedule 29.09.2014
comment
ClientRequest устарел. Вы можете использовать клиент jaxrs-2.0. API и просто сделайте что-нибудь вроде client.target(url).request().accept(MediaType.APPLICATION_XML).header(...).header(...).get(..);. Взгляните на Invocation.Builder класс для нескольких примеров   -  person Paul Samsotha    schedule 29.09.2014
comment
@peeskillet: у вас есть пример кода?   -  person Rosh    schedule 29.09.2014
comment
Эти ссылки 1. Invocation.Builder 2. Клиентский API jaxrs-2.0 имеют пример кода. Вы смотрели на них и пробовали?   -  person Paul Samsotha    schedule 29.09.2014
comment
Я пробовал, для бота требуется ClientBuilder (внешний jar). Я использую Jboss6.2 eap. Есть ли какой-либо клиент, поддерживаемый этим, без использования внешних jar-файлов.   -  person Rosh    schedule 29.09.2014
comment
@peeskillet :javax.ws.rs-api-2.0-m10.jar эта банка, но не работает. Можете ли вы предложить, какую из них использовать   -  person Rosh    schedule 29.09.2014
comment
Попробуйте использовать эти вместе с этот. Вы используете maven, верно?   -  person Paul Samsotha    schedule 29.09.2014
comment
resteasy-client — единственная основная зависимость, которую вам нужно получить это работает. Имейте в виду, однако, что эта банка также зависит от других банок. Таким образом, вы хотите, чтобы maven автоматически вытягивал их для вас. Сама по себе эта банка не сработает.   -  person Paul Samsotha    schedule 29.09.2014
comment
Давайте продолжим обсуждение в чате.   -  person Rosh    schedule 29.09.2014


Ответы (1)


Просто используйте простой http-клиент. Попробуйте следующий код. Убедитесь, что вы правильно обрабатываете исключения.

        URL url = new URL("https://dev.in/rest/service/create");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");

        conn.setRequestProperty("Accept", "application/json;ver=1.0");
        conn.setRequestProperty("username", "raj");
        conn.setRequestProperty("password", "raj");

        String input = "{}" ; //set you json payload here.          
        OutputStream os = conn.getOutputStream();
        os.write(input.getBytes());

        os.flush();        
        conn.disconnect();

Вы можете найти хорошие примеры с пояснениями здесь.

person Maleen Abewardana    schedule 30.09.2014