Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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
Java jsoup post请求500 Quora登录_Java_Jsoup_Quora - Fatal编程技术网

Java jsoup post请求500 Quora登录

Java jsoup post请求500 Quora登录,java,jsoup,quora,Java,Jsoup,Quora,我们已经尝试了很多Java web实用程序,当我们尝试发布到Quora登录URL时,它们都返回了500。我们使用Chrome networking选项卡查找标题/请求内容,所有内容都应该设置得非常完美。我们不确定为什么每次尝试向登录发送post请求时它都返回500服务器错误 public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Ge

我们已经尝试了很多Java web实用程序,当我们尝试发布到Quora登录URL时,它们都返回了500。我们使用Chrome networking选项卡查找标题/请求内容,所有内容都应该设置得非常完美。我们不确定为什么每次尝试向登录发送post请求时它都返回500服务器错误

public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36";

public static void test(String email, String password) throws IOException {

    // Login first
    String loginFormUrl = "https://quora.com/login";
    String loginActionUrl = "https://www.quora.com/webnode2/server_call_POST";

    Connection.Response loginForm = Jsoup.connect(loginFormUrl).userAgent(USER_AGENT).method(Connection.Method.GET).execute(); // removed useragent

    // "formkey": "f3e47dd339ed5673c9411822ad5ff1da", length = 32
    String[] key = loginForm.body().split("formkey\": \"");
    String[] wat = key[1].split("\",");
    String formkey = wat[0];

    // windowId, length = 27
    String[] parts = loginForm.body().split("windowId = \"");
    String[] another = parts[1].split("\";");
    String windowId = another[0];

    // Vcon
    String[] vcon1 = loginForm.body().split(Pattern.quote("new(require(\"login\").LoggedOutHomeHeaderInlineLogin"));
    String[] vcon2 = vcon1[1].split("\",\"");
    vcon2[0] = vcon2[0].replace(")(\"", "");
    String vcon_json = "["+vcon2[0]+"]";

    // Cookies
    String result = "";
    boolean first = true;
    for(String c : loginForm.cookies().keySet()){
        String value = loginForm.cookies().get(c);
        if(first){
            result = result + c + "=" + value;
            first = false;
        }
        else{
            result = result + "; " + c + "=" + value;
        }
    }

    Connection.Response loginPage = Jsoup.connect(loginActionUrl)
              .data("json", "{\"args\":[],\"kwargs\":{\"email\":\""+email+"\",\"password\":\""+password+"\",\"passwordless\":0}}")
              .data("formkey", formkey)
              .data("window_id", windowId)
              .data("__vcon_json", vcon_json)
              .data("__vcon_method", "do_login")

              .header("Accept", "application/json, text/javascript, **; q=0.01")
              .header("Accept-Encoding", "gzip, deflate, br")
              .header("Accept-Language", "en-US,en;q=0.8")
              .header("Content-Type", "application/x-www-form-urlencoded")
              .header("Connection", "keep-alive")
              .header("Content-Length", loginForm.body().length()+"")
              .header("Cookie", result)
              .header("Host", "www.quora.com")
              .header("Origin", "https://www.quora.com")
              .header("Referer", "https://www.quora.com/")
              .header("User-Agent", USER_AGENT)
              .header("X-Requested-With", "XMLHttpRequest")

              .userAgent(USER_AGENT)
              .cookies(loginForm.cookies())
              .followRedirects(true)
              .referrer("https://www.quora.com/")

              .method(Method.POST)
              .execute();

    System.out.println(loginPage.statusCode());
}