Java 将请求发布到服务器。对不同的DefaultClient有不同的响应
当我尝试使用Java(Mac上的JVM)和正确的凭据发送post请求时,我得到了正确的响应代码302 但是当在android上使用相同的代码,使用相同的正确参数时,我得到了200 OK的响应代码 发送post请求的代码:Java 将请求发布到服务器。对不同的DefaultClient有不同的响应,java,android,http,post,Java,Android,Http,Post,当我尝试使用Java(Mac上的JVM)和正确的凭据发送post请求时,我得到了正确的响应代码302 但是当在android上使用相同的代码,使用相同的正确参数时,我得到了200 OK的响应代码 发送post请求的代码: DefaultHttpClient httpclient = new DefaultHttpClient(); HttpPost httpost = new HttpPost(POST_URL); List<NameValuePair> n
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpost = new HttpPost(POST_URL);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("auth", "login"));
nvps.add(new BasicNameValuePair("login", login));
nvps.add(new BasicNameValuePair("password", password));
nvps.add(new BasicNameValuePair("set_cookie", "on"));
httpost.setEntity(new UrlEncodedFormEntity(nvps));
HttpResponse response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
DefaultHttpClient-httpclient=newdefaulthttpclient();
HttpPost httpost=新的HttpPost(POST_URL);
List nvps=new ArrayList();
添加(新的BasicNameValuePair(“身份验证”、“登录”);
添加(新的BasicNameValuePair(“login”,login));
添加(新的BasicNameValuePair(“密码”,password));
添加(新的BasicNameValuePair(“set_cookie”、“on”);
setEntity(新的UrlEncodedFormEntity(nvps));
HttpResponse response=httpclient.execute(httpost);
HttpEntity=response.getEntity();
302发现是执行“重定向”的常见方式,似乎Android或MacJVM没有执行该重定向。您是否使用相同的SDK版本
尝试使用:
final HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, false);
您得到的是相同的Http响应字符串吗?响应完全不同。JVM:找到HTTP/1.1 302[服务器:nginx/1.0.5,日期:Wed,2013年5月22日07:29:18 GMT,内容类型:text/html…….ANDROID:仅返回statusLine HTTP/1.1 200 OK响应URL是什么?它们不能相同。我仍然认为其中一个被重定向,而另一个没有。您好Carlos,问题不在reddirect中,问题在不同的响应状态。在c中ase then responce code=302服务器向客户端发送cookie。最终HttpParams params=new BasicHttpParams();HttpClientParams.setRedirecting(params,false);DefaultHttpClient httpclient=new DefaultHttpClient();httpclient.setParams(params);setRedirecting无法解决问题。感谢回复。