问题描述
- 为什么我用httpclient访问不到网络呢
-
public class MainActivity extends Activity {public static final int SHOW_RESPONSE=1; TextView text; private Handler handler=new Handler(); public void handleMessage(Message msg){ switch(msg.what){ case SHOW_RESPONSE: String response=(String)msg.obj; text.setText(response); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button=(Button)findViewById(R.id.button); text=(TextView)findViewById(R.id.text); button.setOnClickListener(new OnClickListener(){ public void onClick(View v){ sendRequestWithHttpClient(); } }); } private void sendRequestWithHttpClient(){ Toast.makeText(MainActivity.this,"发出服务器请求", Toast.LENGTH_SHORT).show(); new Thread(new Runnable(){ public void run(){ try{ HttpClient httpClient=new DefaultHttpClient();
// HttpGet httpGet=new HttpGet("http://v5.pc.duomi.com/search-ajaxsearch-searchall?kw=jackson&pi=1&pz=5");
HttpGet httpGet=new HttpGet("http://www.baidu.com");
HttpResponse httpResponse=httpClient.execute(httpGet);
if(httpResponse.getStatusLine().getStatusCode()==200){
Toast.makeText(MainActivity.this,"请求响应成功", Toast.LENGTH_SHORT).show();
HttpEntity entity=httpResponse.getEntity();
String response=EntityUtils.toString(entity,"utf-8");Message message=new Message(); message.what=SHOW_RESPONSE; message.obj=response.toString(); handler.sendMessage(message);
// parseJSONWithJSONObject(response);
}
}catch(Exception e){
e.printStackTrace();
}
}
}).start();
}
解决方案
http://www.cnblogs.com/freeliver54/archive/2011/12/28/2304836.html
解决方案二:
访问不到网络具体什么问题?把错误描述清楚下
解决方案三:
HttpClient对比HttpUrlConnection有比较丰富的api,但是不利于扩展和升级,加上android团队在优化HttpClient方面并不积极。
我比较倾向使用HttpUrlConnection,下面还是把两种访问网络的方法列出来以作比较。
HttpClient:
public String httpGet(String url, String params) throws......
答案就在这里:访问网络之HttpClient和HttpUrlConnection