1

Я создал вызов веб-службы, используя java под кодом. Теперь мне нужно сделать операции удаления и put для выполнения.Отправить PUT, DELETE HTTP-запрос в HttpURLConnection

URL url = new URL("http://example.com/questions"); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
conn.setDoOutput(true); 
conn.setRequestMethod("POST"); 
conn.setRequestProperty("Content-Type", "application/json"); 

OutputStream os = conn.getOutputStream(); 
os.write(jsonBody.getBytes()); 
os.flush(); 

Когда я добавляю ниже код для выполнения операции удаления он дает ошибки, говоря:

java.net.ProtocolException: HTTP метод DELETE не поддерживает вывод.

conn.setRequestMethod("DELETE"); 

Так как выполнить удаление и поставить запросы?

+0

Пожалуйста, извините за крик, но ** ЧТО ** ошибками, что это дает? Кроме того, я предлагаю ['HttpClient'] (http://hc.apache.org/httpcomponents-client-ga/index.html) из apache. –

+0

отредактировал вопрос. Все примеры кода для запросов веб-сервисов? Любая помощь? – manitaz

+0

Помогает ли http://stackoverflow.com/questions/1051004/how-to-send-put-delete-http-request-in-httpurlconnection? – hgoebl

ответ

1

я предлагаю вам использовать Restlet клиент для запроса веб-службы .please отсылаем сильфона образец кода, это может помочь вам

Client client = new Client(new Context(), Protocol.HTTP); 
    clientResource = new ClientResource(url); 
     ResponseRepresentation responseRep = null; 
     try { 
      clientResource.setNext(client);   
      clientResource.delete(); 

     } catch (Exception e) { 
      e.printStackTrace(); 

     } 
+0

Как установить тип контента и его содержимое? Что такое HttpUrlConnection и что? – manitaz

+0

http://stackoverflow.com/questions/23630094/how-does-restlet-client-handle-media-type-of-request см. Эту ссылку для обработки типа содержимого – Jamsheer

+0

Позвольте мне проверить эту ссылку. Спасибо за помощь. – manitaz

5

PUT пример использования HttpURLConnection:

URL url = null; 
try { 
    url = new URL("http://localhost:8080/putservice"); 
} catch (MalformedURLException exception) { 
    exception.printStackTrace(); 
} 
HttpURLConnection httpURLConnection = null; 
DataOutputStream dataOutputStream = null; 
try { 
    httpURLConnection = (HttpURLConnection) url.openConnection(); 
    httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
    httpURLConnection.setRequestMethod("PUT"); 
    httpURLConnection.setDoInput(true); 
    httpURLConnection.setDoOutput(true); 
    dataOutputStream = new DataOutputStream(httpURLConnection.getOutputStream()); 
    dataOutputStream.write("hello"); 
} catch (IOException exception) { 
    exception.printStackTrace(); 
} finally { 
    if (dataOutputStream != null) { 
     try { 
      dataOutputStream.flush(); 
      dataOutputStream.close(); 
     } catch (IOException exception) { 
      exception.printStackTrace(); 
     } 
    } 
    if (httpsURLConnection != null) { 
     httpsURLConnection.disconnect(); 
    } 
} 

DELETE пример использования HttpURLConnection :

URL url = null; 
try { 
    url = new URL("http://localhost:8080/deleteservice"); 
} catch (MalformedURLException exception) { 
    exception.printStackTrace(); 
} 
HttpURLConnection httpURLConnection = null; 
try { 
    httpURLConnection = (HttpURLConnection) url.openConnection(); 
    httpURLConnection.setRequestProperty("Content-Type", 
       "application/x-www-form-urlencoded"); 
    httpURLConnection.setRequestMethod("DELETE"); 
    System.out.println(httpURLConnection.getResponseCode()); 
} catch (IOException exception) { 
    exception.printStackTrace(); 
} finally {   
    if (httpURLConnection != null) { 
     httpURLConnection.disconnect(); 
    } 
} 
+0

В удалении мне нужно использовать httpURLConnection.setRequestProperty («Content-Type», «application/json»); это возможно? – manitaz

+0

yes -It возможно – Jamsheer

+0

java.net.ProtocolException: HTTP-метод DELETE не поддерживает вывод – manitaz

1

ДЛЯ PUT

URL url = new URL("http://www.example.com/resource"); 
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); 
httpCon.setDoOutput(true); 
httpCon.setRequestMethod("PUT"); 
OutputStreamWriter out = new OutputStreamWriter(
    httpCon.getOutputStream()); 
out.write("Resource content"); 
out.close(); 
httpCon.getInputStream(); 

ДЛЯ УДАЛИТЬ

URL url = new URL("http://www.example.com/resource"); 
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); 
httpCon.setDoOutput(true); 
httpCon.setRequestProperty(
    "Content-Type", "application/x-www-form-urlencoded"); 
httpCon.setRequestMethod("DELETE"); 
httpCon.connect(); 

На самом деле получил его по ссылке здесь: Send PUT, DELETE HTTP request in HttpURLConnection

 Смежные вопросы

  • Нет связанных вопросов^_^