HttpClient 用法

Android的网络通信的方式有两种:

  1. Socket
  2. HTTP

而其中,HTTP又包括两种编程方式:

  1. HttpURLConnection
  2. HttpClient

这篇文章介绍的就是,HttpClient

首先,依然是创建

HttpClient client = new DefaultHttpClient();

第二步,GET请求方式,获得服务器响应

HttpGet httpGet = new HttpGet("http://www.baidu.com");

httpClient.execute(httpSet);

第三步,判断返回的状态码

if(httpResponse.getStatusLine().getStatusCode()==200){

}

四步,创建HttpEntity对象,获取服务器响应

HttpEntity entity = httpResponse.getEntity();

String response = EntityUtils.toString(entity,"utf-8");

MainActivity.java

public class MainActivity extends Activity implements OnClickListener {

 

    private Button sendRequest;

    private TextView responseText;

 

    public static final int SHOW_RESPONSE = 0;

    private Handler handler = new Handler(){

        public void handleMessage(Message msg){

            switch (msg.what) {

            case SHOW_RESPONSE:

                String response = (String)msg.obj;

                responseText.setText(response);

                break;

 

            default:

                break;

            }

        }

    };

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

 

        sendRequest = (Button) findViewById(R.id.send_request);

        responseText = (TextView) findViewById(R.id.response);

        sendRequest.setOnClickListener(this);

    }

 

    @Override

    public void onClick(View v) {

        // TODO Auto-generated method stub

        if (v.getId() == R.id.send_request) {

//            sendRequestWithHttpURLConnection();

            sendRequestWithHttpClient();

        }

    }

    private void sendRequestWithHttpClient(){

        new Thread(new Runnable() {

 

            @Override

            public void run() {

                // TODO Auto-generated method stub

                try{

                    HttpClient client = new DefaultHttpClient();

                    HttpGet get = new HttpGet("http://www.baidu.com");

                    HttpResponse httpResponse =   client.execute(get);

                    if(httpResponse.getStatusLine().getStatusCode()==200){

                        HttpEntity entity = httpResponse.getEntity();

                        String response = EntityUtils.toString(entity,"utf-8");

                        Message message = new Message();

                        message.what=SHOW_RESPONSE;

                        message.obj=response;

                        handler.sendMessage(message);

                    }

                }catch(Exception e){

                    e.printStackTrace();

                }

 

            }

        }).start();

    }

}

除了sendRequestWithHttpClient与之前的HttpURLConnection不同,其他部分的代码都是相同的。

时间: 2024-08-04 15:48:43

HttpClient 用法的相关文章

Android HttpClient 用法以及乱码解决

一.Post提交 并可以实现多文件上传 // 创建DefaultHttpClient对象 HttpClient httpclient = new DefaultHttpClient(); // 创建一个HttpGet对象 HttpPost post = new HttpPost(realUrl); MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); if (params != nu

httpclient用法。

HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议.本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法... httpclient可以帮助我们模仿http请求,我这里是在测试并发问题用到的,也是第一次接触httpclient觉得非常不错,也挺好用的容易上手.故在这里做一笔记,避免自己遗忘.下面就直接贴代码..

Android进阶笔记01:Android 网络请求库的比较及实战(一)

在实际开发中,有的时候需要频繁的网络请求,而网络请求的方式很多,最常见的也就那么几个.本篇文章对常见的网络请求库进行一个总结. 一.使用HttpUrlConnection: 1. HttpUrlConnection 最开始学android的时候用的网络请求是HttpUrlConnection,当时很多东西还不知道,但是在android2.2及以下版本中HttpUrlConnection存在着一些bug,所以建议在android2.3以后使用HttpUrlConnection,之前使用HttpCl

HttpClient超时的用法

HttpClient在运用中有两个超时时刻,是一向接触和运用的,由于前次工作中运用httpClient造成了体系悲惨剧的情况,特别对它的两个超时时刻进行了小小的测验,在这里记录下. 测验版别为HttpClient——3.1 一:衔接超时:connectionTimeout 1:指的是衔接一个url的衔接等待时刻. 2:设置办法为: public class TestHttpClientMain { /** * @param args */ public static void main(Stri

HttpClient的用法

1 HttpClient httpClient = new DefaultHttpClient(); 2 HttpGet httpGet = new HttpGet(url); 3 httpGet.addHeader("Accept-Language","zh-CN");//指定返回中文 4 HttpResponse httpResponse = httpClient.execute(httpGet); 5 if(httpResponse.getStatusLine

HttpClient的get用法

httpClient(执行时都需要放进线程中): try { String path="路径"; HttpClient httpClient=new DefaultHttpClient(); HttpGet httpGet=new HttpGet(path); HttpResponse response = httpClient.execute(httpGet); int code = response.getStatusLine().getStatusCode(); if(code=

HttpClient、XmlPullParser、ListView与BaseAdapter的综合用法

知识点总结 1.通过android API内置的类HttpClient从后台取出数据,HttpClient是一个接口,所以用他的子类来实例化DefaultHttpClient,具体的代码如下: private List<News> getNewsFromInternet() { HttpClient client = null; try { // 定义一个客户端 client = new DefaultHttpClient(); // 定义get方法 HttpGet get = new Htt

(转)C# :base的用法(冒号后面的base)

c# 中关于: base()用法,在此记录一下,方便查阅 1.this是标识当前资源对象的,而base是基于父级的. 2.base发挥了期灵魂级的作用--多态 3.base子类可以访问父类成员 4.base调用父类方法必须重写父类方法 5.base子类构造函数直接访问:base父类构造方法 6.base同样不能用于静态方法 public abstract class HttpBasedTransport : ClientTransportBase { protected HttpBasedTra

Atitit.http httpclient实践java c# .net php attilax总结

1. Navtree>> net .http1 2. Httpclient理论1 2.1. 自动url转向的控制1 3. Java里面的httpclient1 4. C# .net的httpclient2 4.1.1. .NET 4.5(C#):2 4.2. 对COOKIE和SEIION支持区别3 4.3. 用户对是否自动url转向的控制3 4.4. 对用户代理服务器的支持3 5. Php的httpclient3 6. Node.js4 7. solu解决问题::4 8. ref参考资料4 8