Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Android HTTP POST和响应特定案例研究 地点: 搜索玩家(示例:Jaiybe) 您将被重定向(在本例中为:) 阅读内容_Android_Http_Http Post_Response_Httpresponse - Fatal编程技术网

Android HTTP POST和响应特定案例研究 地点: 搜索玩家(示例:Jaiybe) 您将被重定向(在本例中为:) 阅读内容

Android HTTP POST和响应特定案例研究 地点: 搜索玩家(示例:Jaiybe) 您将被重定向(在本例中为:) 阅读内容,android,http,http-post,response,httpresponse,Android,Http,Http Post,Response,Httpresponse,我想在java/android中实现这一点 我在搜索时分析站点的POST请求,结果: op:搜索 玩家:杰伊贝 梯子编号:3 表格构建id:表格-fff5e6e2569f1e15e5a5caf2a61c15e2 表单\u id:梯形图\u过滤器\u表单 构建一个简单的HTTP POST混合,让我们阅读内容 守则: HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://

我想在java/android中实现这一点

  • 我在搜索时分析站点的POST请求,结果:

    • op:搜索
    • 玩家:杰伊贝
    • 梯子编号:3
    • 表格构建id:表格-fff5e6e2569f1e15e5a5caf2a61c15e2
    • 表单\u id:梯形图\u过滤器\u表单
  • 构建一个简单的HTTP POST混合,让我们阅读内容

  • 守则:

    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://na.leagueoflegends.com/ladders/solo-5x5");
    
    // Add your POST METHOD attributes
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("op", "Search"));
    nameValuePairs.add(new BasicNameValuePair("player", Jaiybe));
    nameValuePairs.add(new BasicNameValuePair("ladder_id", "3"));
    nameValuePairs.add(new BasicNameValuePair("form_build_id","form-daca6fff89cedc352ccc3f533afa3804"));
    nameValuePairs.add(new BasicNameValuePair("form_id","ladders_filter_form"));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    
    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);
    responseBody = EntityUtils.toString(response.getEntity());
    return responseBody;
    
    HttpClient-HttpClient=newdefaulthttpclient();
    HttpPost HttpPost=新的HttpPost(“http://na.leagueoflegends.com/ladders/solo-5x5");
    //添加POST方法属性
    List nameValuePairs=新的ArrayList(2);
    添加(新的BasicNameValuePair(“op”,“搜索”));
    添加(新的BasicNameValuePair(“玩家”,Jaiybe));
    添加(新的BasicNameValuePair(“梯形图id”,“3”));
    添加(新的BasicNameValuePair(“form_build_id”,“form-DACA6FFF89CEDC352CCCC3F533AFA3804”);
    添加(新的BasicNameValuePair(“表单id”、“阶梯过滤器表单”);
    setEntity(新的UrlEncodedFormEntity(nameValuePairs));
    //执行HTTP Post请求
    HttpResponse response=httpclient.execute(httppost);
    responseBody=EntityUtils.toString(response.getEntity());
    返回响应体;
    
    当我运行它时,我会得到一个离线页面

    数字形式_build_id-不断变化,但这没有问题,使用仍然相同的一个,而且如果我想“测试”这是否可能是问题,我不知道如何

    或者:有没有其他快速的方法可以得到同样的结果

    奇怪的是,我在android上获得的“错误”站点源代码与在PC(Win7、Eclipse、Java)或浏览器上运行的源代码不同。好像会有两个版本的离线网站-手机版和PC版-但我的问题是:服务器如何知道代码在Android设备上运行?有没有办法在HttpClient中进行设置

    form_build_id:form-fff5e6e2569f1e15e5a5caf2a61c15e2
    
    这是自动生成的令牌,在特定时间段内有效。这可能是问题的根源,也是令牌首先存在的原因(以防止垃圾邮件)

    由于这个令牌看起来不是基于会话的,因此您实际上可以在生成表单的页面上使用HTTPGET,并每次为HTTP Post解析生成的令牌


    关于操作系统检测,浏览器通常使用
    HTTP用户代理
    标题提供有关操作系统的信息。

    这是您编写的站点,还是您正在尝试解析其他人的站点?只是好奇。如果您可以控制站点代码,那么就有更简单的方法。只需解析第三方站点。这里的更多信息:可能是这样的,有没有关于此令牌的方法?正如我已经提到的,您需要每次解析出令牌。不过,我建议您联系Riot,了解他们对此的立场。我在java(EclipsePC)中一直使用相同的标记,并且它可以工作。不要认为这是问题所在。