Отправка данных через HttpUrlConnection

1

Я пытаюсь отправить данные в службу rest с помощью HttpUrlConnection следующим образом:

 public void makePutRequest(String objtype,String objkey,String json)
{
    String uri="http://localhost:8180/GoogleMapsLoadingTest/rest/GoogleMapsErp/"+objtype+"/"+objkey;
    HttpURLConnection conn=null;
    URL url=null;
    BufferedWriter writer=null;
    try {
        url=new URL(uri);   
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        conn=(HttpURLConnection) url.openConnection();
        conn.addRequestProperty("Content-Type", "application/json");
        conn.setRequestMethod("PUT");
        conn.setDoInput(true);
        conn.setDoOutput(true);
        System.out.println(json);
        writer=new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
        writer.write(json);
        int rc=conn.getResponseCode();
        System.out.println("The response code is "+rc);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    finally
    {
        if(writer!=null)
        {
            try {
                writer.flush();
                writer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            if(conn!=null)
                conn.disconnect();
        }
    }

}

Я получаю эту ошибку, потому что строка не может быть отправлена

Теги:
jersey
put
httpurlconnection

1 ответ

2
Лучший ответ

Вам нужно flush() BufferedWriter прежде чем получить код ответа.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню