facebook Java中的HTTP Post请求工作不正常?
字符串httpsURL=“”facebook Java中的HTTP Post请求工作不正常?,java,web,http-post,Java,Web,Http Post,字符串httpsURL=“” 我对您的代码进行了以下2项更改以使其正常工作: 1) 已从URL末尾删除_rdr参数。看起来当你添加它时,它总是将你重定向到初始页面。因此: String httpsURL=”https://m.facebook.com/login/identify/?ctx=recover&c=https%3A%2F%2Fm.facebook.com%2Flogin%2F&lwv=100"; 2) 在执行重定向时,HttpsURLConnection不会设置从原始响应获得的Coo
我对您的代码进行了以下2项更改以使其正常工作: 1) 已从URL末尾删除_rdr参数。看起来当你添加它时,它总是将你重定向到初始页面。因此:
String httpsURL=”https://m.facebook.com/login/identify/?ctx=recover&c=https%3A%2F%2Fm.facebook.com%2Flogin%2F&lwv=100";代码>
2) 在执行重定向时,HttpsURLConnection不会设置从原始响应获得的Cookie,除非您这样做():
CookieHandler.setDefault(新建CookieManager())代码>
把这两个放在一起,我们有下面的最终工作代码。这是一本书。我添加了BufferedReader来读取响应,以获得外观稍好的控制台输出,这对它的工作来说不是必需的
String httpsURL = "https://m.facebook.com/login/identify/?ctx=recover&c=https%3A%2F%2Fm.facebook.com%2Flogin%2F&lwv=100";
String query = "email=" + URLEncoder.encode("myemailaddress@gmail.com", "UTF-8");
CookieHandler.setDefault(new CookieManager());
URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection) myurl.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-length", String.valueOf(query.length()));
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0;Windows98;DigExt)");
con.setDoOutput(true);
con.setDoInput(true);
DataOutputStream output = new DataOutputStream(con.getOutputStream());
output.writeBytes(query);
output.close();
BufferedReader input = new BufferedReader(new InputStreamReader(con.getInputStream()));
for (int c = input.read(); c != -1; c = input.read())
System.out.print((char) c);
input.close();
System.out.println("Resp Code:" + con.getResponseCode());
System.out.println("Resp Message:" + con.getResponseMessage());
此代码有什么问题?请提供更多详细信息。什么工作不正常,即您希望此代码做什么,它实际做什么?阅读更多关于如何提出好问题的信息。输出应显示搜索电子邮件地址结果的html代码(例如-myemailaddress@gmail.com)但它显示了用于搜索帐户的默认url的代码,可能它没有将电子邮件作为输入,而是使用了ApacheHttpClient,而且它工作正常,可能是它包含了CookieManager
String httpsURL = "https://m.facebook.com/login/identify/?ctx=recover&c=https%3A%2F%2Fm.facebook.com%2Flogin%2F&lwv=100";
String query = "email=" + URLEncoder.encode("myemailaddress@gmail.com", "UTF-8");
CookieHandler.setDefault(new CookieManager());
URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection) myurl.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-length", String.valueOf(query.length()));
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0;Windows98;DigExt)");
con.setDoOutput(true);
con.setDoInput(true);
DataOutputStream output = new DataOutputStream(con.getOutputStream());
output.writeBytes(query);
output.close();
BufferedReader input = new BufferedReader(new InputStreamReader(con.getInputStream()));
for (int c = input.read(); c != -1; c = input.read())
System.out.print((char) c);
input.close();
System.out.println("Resp Code:" + con.getResponseCode());
System.out.println("Resp Message:" + con.getResponseMessage());