「已注销」 2015-12-12 09:34 采纳率: 25%
浏览 1367

为什么我用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();
}

  • 写回答

3条回答 默认 最新

  • Robot-C 2015-12-12 09:38
    关注

    HttpClient对比HttpUrlConnection有比较丰富的api,但是不利于扩展和升级,加上android团队在优化HttpClient方面并不积极。
    我比较倾向使用HttpUrlConnection,下面还是把两种访问网络的方法列出来以作比较。
    HttpClient:
    public String httpGet(String url, String params) throws......
    答案就在这里:访问网络之HttpClient和HttpUrlConnection
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    评论

报告相同问题?

悬赏问题

  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站