zoukankan      html  css  js  c++  java
  • Http通信(HttpClient)

       HttpURLConnection是java.net.*包提供的类,但java JDK 库本身功能还不够丰富和灵活;
    Apache HttpClient是一个开源项目,功能更加完善,弥补了java.net.*灵活性不足的缺点。
     
        使用HttpClient接口要加入httpclient-4.3.1.jar相关的jar包
    private void getHttpClientConnection(String url){
    final String getUrl = url;
    new Thread(new Runnable() {//新建一个子线程
    String getUrl2 = getUrl;
    @Override
    public void run() {
    HttpClient hc = new DefaultHttpClient();//1.创建一个HttpClient,(DefaultHttpClient表示默认属性)
    HttpGet hg = new HttpGet(getUrl2);//2.HttpGet实例,通过GET方法
    InputStream in = null;
    StringBuffer sb = null;
    try{
    HttpResponse hr = hc.execute(hg);//3.HttpResponse Http响应,HttpClient执行HttpGet方法
    //连接成功
    if ((hr.getStatusLine().getStatusCode()) == 200){//4.得到响应码,如果==200,连接成功
    in = hr.getEntity().getContent();//5.获取返回的数据 InPutStream流获取响应得到的内容
    BufferedReader br = new BufferedReader(new InputStreamReader(in));//BufferedReader读取数据流
    char[] buf = new char[1024];
    int longth = 0;
    sb = new StringBuffer();
    while((longth = br.read(buf)) != -1){//读取BufferedReader,放入StringBuffer
    sb.append(buf,0,longth);
    }

    }
    }catch(IOException e){
    e.printStackTrace();
    }finally{
    if (in != null){
    try {
    in.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    Message message = new Message();//新建Message
    message.what = CHANGE_TEXT;
    message.obj = sb.toString();//Message.obj得到StringBuffer的内容
    handler.sendMessage(message);//sendMessage

    }
    }).start();
    }
    -----------------------------------------
    类中建一个Handler接收message
    private static final int CHANGE_TEXT = 1;

    private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
    super.handleMessage(msg);
    if (msg.what == CHANGE_TEXT){
    textView.setText(msg.obj.toString());
    }
    }
    };
  • 相关阅读:
    CentOS 6.6下 BCM4312 802.11b/g无线网卡驱动安装
    centOS6.6网络设置
    CentOS6.6安装(转)
    CCFlow工作流程起航
    LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据 (转)
    LINQ to SQL 建立实体类 (转)
    字节数组的转换和合并
    ccflow之相对路径
    CCFlow SDK模式开发(有比较详细的代码,以服务的形式与ccflow数据库进行数据交互)
    Android从相册中获取图片以及路径
  • 原文地址:https://www.cnblogs.com/aisi-liu/p/5112928.html
Copyright © 2011-2022 走看看