爲什麼下面的代碼打印「Method:GET」而不是「Method:POST」?將POST請求視爲GET請求
我需要它以編程方式授權http://www.havenandhearth.com/portal/。
public class Main {
public static void main(String[] args) {
try {
URL url = new URL("http://www.havenandhearth.com/portal/sec/login");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
String parameters = "username=xxx&password=yyy";
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(parameters.length()));
conn.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(conn.getOutputStream());
wr.writeBytes(parameters);
wr.flush();
wr.close();
int responsecode = conn.getResponseCode();
if (responsecode != HttpURLConnection.HTTP_OK) {
System.out.println("Unable to make POST request. Response code: " + responsecode);
return;
}
System.out.println("Method: " + conn.getRequestMethod());
} catch (IOException ex) {
System.out.println("Error: " + ex.getMessage());
}
}
}
如果我將URL更改爲http://httpbin.org/post,它按預期工作。
爲了實現目標,您需要將xxx和yyy替換爲實際的帳戶憑據。
在此先感謝。
當我運行你的代碼,我看到這個結果:'方法:POST' –
@David Herrero啊,這是因爲無效的帳戶憑據,對不起 – FrozenHeart
好吧,我認爲,當您使用您的憑據成功的POST,網頁將您重定向到主頁,所以conn現在發出GET請求。 –