zoukankan      html  css  js  c++  java
  • 使用HttpClient进行Get通信

    --------------siwuxie095

       

       

       

       

       

       

       

    首先到 Apache官网 下载相关的库文件

       

    Apache官网:http://www.apache.org/

       

       

    在官网页面的最下方是 Apache 所支持的所有项目列表(APACHE PROJECT LIST)

       

    找到 HttpComponents,点击进入,选择 Download,下载

    HttpClient 4.5.3(GA) 版本(截止 2017/3/31 最新 GA 版本)

       

    页面链接:http://hc.apache.org/downloads.cgi

       

       

       

       

       

    httpcomponents-client-4.5.3-bin.zip 解压后一览:

       

       

       

       

       

       

       

    工程名:TestHttpClient

    包名:com.siwuxie095.httpclient

    类名:TestGet.java

       

       

       

    打开资源管理器,在工程 TestHttpClient 文件夹下,创建一个

    文件夹:lib,在其中放入:

    1)httpclient-4.5.3.jar

    (2)httpcore-4.4.6.jar

    3)commons-logging-1.2.jar

       

       

    工程结构目录一览:

       

       

       

       

    全选这 3 jar 包(利用 Shift 全选),右键->Build Path->Add to Build Path

       

    此时,工程结构目录一览:

       

       

       

       

       

    代码:

       

    package com.siwuxie095.httpclient;

       

    import java.io.IOException;

       

    import org.apache.http.HttpEntity;

    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.HttpClients;

    import org.apache.http.util.EntityUtils;

       

    public class TestGet {

       

    public static void main(String[] args) {

     

    //运行线程 Get,使用匿名对象

    new Get().start();

    }

       

    }

       

    //创建线程 Get

    class Get extends Thread{

     

    //创建一个HttpClient,使用静态方法调用类HttpClientsreateDefault()

    //获取一个新的实例

    HttpClient client=HttpClients.createDefault();

     

    //复写run()

    @Override

    public void run() {

    //创建一个HttpGet,传入String:要获取的网页

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

     

     

    try {

     

    //通过HttpGet指定get操作后,让HttpClient执行get操作

    //execute()返回HttpResponse类型,创建以接收返回值

    //有异常抛出,使用 try catch 捕获

    HttpResponse response=client.execute(get);

     

     

    //response中获取当前请求的结果

    //getEntity()返回HttpEntity类型,创建以接收返回值

    HttpEntity entity=response.getEntity();

     

     

    //entity返回成一个String类型

    //调用类EntityUtils的静态方法toString()

    //传入entity的同时,指定转换为字符串时使用的编码

    String result=EntityUtils.toString(entity, "UTF-8");

     

    //打印结果,输出为 HTML 数据

    System.out.println(result);

     

    } catch (ClientProtocolException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

     

     

    }

    }

       

       

    运行一览:

       

       

       

       

    将输出的 HTML 数据,复制->粘贴->格式化:

       

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    解决Warning: Cannot modify header information headers already sent b...
    C#获取文件路径的几种方法
    C#反射技术之一读取和设置类的属性
    WPF中,在WebBrowser中操作源代码
    WPF 的 TabControl 绑定不同的窗口集合
    C#_在VS2010下进行单元测试
    Mvvm Light Toolkit for wpf/silverlight系列之Command和Events
    VS2005和VS2008快捷键大全(转)
    nchar,char,varchar 与nvarchar区别
    处理问题:windows server 2016由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系...
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6651072.html
Copyright © 2011-2022 走看看