为什么以下代码打印“Method:GET”而不是“Method:POST”?
我需要它以编程方式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());
}
}
}
如果我将网址更改为http://httpbin.org/post,则可以按预期工作。
为了实现这一目标,您需要将xxx和yyy替换为实际的帐户凭据。
提前致谢。
答案 0 :(得分:0)
好像是因为自动重定向。
如果我设置
conn.setInstanceFollowRedirects(false);
它按预期工作。