要求体付きHTTP要求をDELETEで送信します。
HTTPで要求を送信する場合、設定要求を要求するように、一般的な要求方式は、PUT、POST、GET、DELETE方式などである。JAVA言語を使ってDELETE要求を送信する場合、JAVAのJDK自身が提供するHttpUrlConnectionの対象は、DELETE方式の要求は要求体を持たないとデフォルトで認められますので、下記のコードを使ってDELETE方式のHTTP要求を行うと、
しかし、DELETE方式のHTTPに必ず要求するとしたら?実は方法があります。ここでapacheのHttp Clientを使うことができます。
private String f(List list) throws IOException {
URL url = new URL("www.163.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("DELETE");
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestProperty("name", "robben");
connection.setRequestProperty("content-type", "text/html");
OutputStreamWriter out = new OutputStreamWriter(
connection.getOutputStream(), "8859_1");
// JSON
JSONArray jsonArray = JSONArray.fromObject(list);
//
out.write("" + jsonArray);
out.flush();
out.close();
//
BufferedReader in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line = null;
StringBuffer content = new StringBuffer();
while ((line = in.readLine()) != null) {
// line ,
content.append(line);
}
in.close();
return content.toString();
}
JVMは投げ出します。java.net.ProtocolException: HTTP method DELETE doesn't support output
の異常は、DELETE方式のHTTP要求に要求体を書き込むことができないことを示しています。しかし、DELETE方式のHTTPに必ず要求するとしたら?実は方法があります。ここでapacheのHttp Clientを使うことができます。