Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
facebook Java中的HTTP Post请求工作不正常?_Java_Web_Http Post - Fatal编程技术网

facebook Java中的HTTP Post请求工作不正常?

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

字符串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不会设置从原始响应获得的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());