热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用httpclient做搜狐邮箱的模拟登录,但是请求结果一直都400,因为是https请求,wireshark也抓不到包

登录结果{body:,message:BadRequest,status:400}感觉是请求缺少了校验,但是不知道怎么完整的请求过程之前http请求的


 登录结果{"body":"","message":"Bad Request","status":400}

感觉是请求缺少了校验,但是不知道怎么完整的请求过程

之前http请求的时候,还可以用wireshark看请求过程,对比一下还可以看自己哪里错了

1 个解决方案

#1


String loginurl="https://v4.passport.sohu.com/i/login/101305"
String userid=url;
String password=md5Util.Pd(passwords);
System.out.println(password);
String appid="101305";
String callback="";
//登录所需参数
List list=new ArrayList();
list.add(new BasicNameValuePair("userid", userid));
list.add(new BasicNameValuePair("password", password));
list.add(new BasicNameValuePair("appid", appid));
//list.add(new BasicNameValuePair("callback", callback));
//发送请求
HttpPost httpPost=new HttpPost(loginurl);
UrlEncodedFormEntity uefEntity=new UrlEncodedFormEntity(list, "UTF-8");
httpPost.setEntity(uefEntity);
//设置头部参数
httpPost.setHeader("Content-Type","text/html;charset=UTF-8");
httpPost.setHeader("User-Agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0");
//接收相应
CloseableHttpResponse respOnse=httpclient.execute(httpPost, context);
System.out.println("状态码"+response.getStatusLine().getStatusCode());

HttpEntity Entity=response.getEntity();
String result=EntityUtils.toString(Entity,"utf-8");
System.out.println("登录结果"+result);

推荐阅读
author-avatar
叶葳蕤1095190287
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有