以下是我的POST請求登錄網站的代碼。當我運行相同的時候,我收到了411的消息響應。任何人都可以幫助我設置正確的內容長度嗎?java中的HTTP POST請求 - 設置內容長度
try {
String request = "http://<domain.com>/login";
URL url = new URL(request);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestProperty("Content-Length", "1");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("email", "abc");
connection.setRequestProperty("password", "xyz");
connection.setDoOutput(true);
connection.setRequestMethod("POST");
int code = connection.getResponseCode();
System.out.println("Response Code of the object is " +code);
if(code == 200)
System.out.println("OK");
connection.disconnect();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我有同樣的問題。這就是我發現的:411只從實現HTTP 1.0的服務器返回。在HTTP1.1中,Content-Length屬性在POST請求中不是強制性的。像你一樣手動設置Content-Length是徒勞的。 Java會覆蓋它。 但是,看起來,在一個零長度的POST請求中,java根本沒有設置Content-Length。至少這是我的假設。在我的情況下,實際的問題是,一個POST請求發送,GET請求是充足的。有了GET請求,您不需要設置Content-Length,因爲沒有任何內容被髮送到服務器。 – haferblues 2014-12-18 14:27:25