java使用httpclient通过post方式提交表单失败求助
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java使用httpclient通过post方式提交表单失败求助相关的知识,希望对你有一定的参考价值。
新手求助:流程一:通过httpclient的GET方式成功登陆教务系统,流程二:登陆后通过POST方式提交表单修改登录密码。但是流程二执行后密码没有改变,代码如下:
public static void Changepassword_ByClientPost(String username,String password,String TextBox1,String TextBox2,String TextBox3)
try
//登陆教务系统
loginByClientGet(username, password);
//输入地址
String path="http://210.35.36.68/teachweb/brxx/ModifyPwd.aspx";
HttpPost httpPost =new HttpPost(path);
//制定要提交的数据实体
List<NameValuePair>parameters=new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("TextBox1", TextBox1));
parameters.add(new BasicNameValuePair("TextBox2",TextBox1 ));
parameters.add(new BasicNameValuePair("TextBox3",TextBox1 ));
httpPost.setEntity(new UrlEncodedFormEntity(parameters,"gb2312"));
//提交
HttpResponse response=client.execute(httpPost);
InputStream is=response.getEntity().getContent();
//将网站源码保存到本地
String text=streamtools.readinputstream(is);
signinservice.savedetail(text, "html_user_clientPOST.txt");
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
网站情况如图:
如还需要提供什么信息尽管回复就好。
问题我已经自己解决了,感谢你们的回答
我的解决方案如下(不一定适用于其他原因引发的问题):
因为我学校的教务系统会生成随机的字符串和账号密码一起post上去,post的时候一起带上就好啦
如果是200,你再看响应内容,是否是你要的,也就是你的text
你可以使用log.d()来查看日志;追问
因为我看到在httpwatch中无论修改成功或失败响应码都是200,所以代码中没有用响应码来做判断
追答是200后,你就要看你返回的内容是什么了。你使用log.d("text", text);查看内容,看看对不对?
如果返回结果正确,就找你的signinservice的savedetail(text, "html_user_clientPOST.txt")方法
这样一步一步的排查。
如果自己客户端都正确,你就可以怀疑是服务器的代码问题了。
http://210.35.36.68/teachweb/brxx/ModifyPwd.aspx
是如何处理传入的参数的
也是TextBox1,TextBox2,TextBox3来接收吗?是不是这里出问题了追问
我写成TextBox1、2、3因为httpwatch中的postdata(也就是第二张图)里显示这三栏的paramenter分别就是TextBox1、2、3
但是接收的到底是不是这三个我也不太清楚,
参考技术B 你用eclipse这个软件编程看下代码有没有问题追问eclipse上显示没有问题
追答那就是少了什么代码、、、、这段代码我也不是很会
以上是关于java使用httpclient通过post方式提交表单失败求助的主要内容,如果未能解决你的问题,请参考以下文章
java用httpClient post方式传数据,ASP.NET怎么接收数据?