要解决重定向导致浏览器,无法goback问题一直困扰着我
最后,解决方案为,判断3xx重定向 url,自己维护一个 返回的list历史记录即可实现。
代码比较简单直接上代码。
前面一直得到code 200,原来是 用get请求的,直接返回重定向后的 code 。
package com.example.chongdingxiang;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultRedirectHandler;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button button1;
private TextView textView;
private EditText editText1;
public static final String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1=(Button)findViewById(R.id.button1);
textView=(TextView)findViewById(R.id.textView1);
editText1=(EditText)findViewById(R.id.editText1);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new MyTask().execute(editText1.getText().toString());
}
});
}
public int getPost(String string) {
// TODO Auto-generated method stub
int code=0;
HttpGet getMethod = new HttpGet(string);
DefaultHttpClient loginClient = new DefaultHttpClient();
MyRedirectHandler redirectHandler=new MyRedirectHandler();
loginClient.setRedirectHandler(redirectHandler);
try {
HttpResponse response=loginClient.execute(getMethod);
code= response.getStatusLine().getStatusCode();
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return code;
}
public class MyTask extends AsyncTask<String, Intege