zoukankan      html  css  js  c++  java
  • HttpClient实战

    创建Get请求

    HttpGet httpGet = new HttpGet(url+param);

    设置请求头信息

    HttpGet httpGet = new HttpGet(url+param);
    httpGet.setHeader("Token",token);
    httpGet.setHeader("Timespan",time);

    设置响应模型

    CloseableHttpResponse response = null;

    客户端发起请求:这里要处理异常,调用的是响应模型的变量

    //客户端发起请求
    response = httpClient.execute(httpGet);

    获取实体

    //从相应模型中获取实体
    HttpEntity responseEntity = response.getEntity();

    方法:

    getContentLength() 获取响应内容长度
    EntityUtils.toString(responseEntity)  获取响应内容

    完整代码

     public static void main(String[] args) {/**
             * 请求头
             * @param Token 验证加密值 Md5(key+Timespan+SecretKey) 加密的32位大写字符串)
             * @param Timespan 精确到秒的Unix时间戳
             * 请求参数
             * @param key 应用APPKEY(应用详细页查询)
             * @param keyword  搜索关键字
             */
            LocalDateTime time = LocalDateTime.now();
            String Timespan = time.toString();
            String Token = MD5Util.toMD5(appkey+Timespan+secretKey);
            String url = "http://api.qichacha.com/ECIV4/SearchWide?key="+ secretKey + "keyword=零瓴软件";
    // 获得Http客户端(可以理解为:你得先有一个浏览器;注意:实际上HttpClient与浏览器是不一样的)
            CloseableHttpClient httpClient = HttpClientBuilder.create().build();
    
            // 创建Get请求
            HttpGet httpGet = new HttpGet(url);
            // 添加请求头信息
            httpGet.addHeader("Token",Token);
            httpGet.addHeader("Timespan",Timespan);
            // 响应模型
            CloseableHttpResponse response = null;
            try {
                // 由客户端执行(发送)Get请求
                response = httpClient.execute(httpGet);
                // 从响应模型中获取响应实体
                HttpEntity responseEntity = response.getEntity();
                System.out.println("响应状态为:" + response.getStatusLine());
                if (responseEntity != null) {
                    System.out.println("响应内容长度为:" + responseEntity.getContentLength());
                    System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
                }
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    // 释放资源
                    if (httpClient != null) {
                        httpClient.close();
                    }
                    if (response != null) {
                        response.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

    欢迎关注作者微信公众号

  • 相关阅读:
    JNI和NDK的关系
    JNI和NDK的关系
    Android SDK结构分析
    设计模式:单例模式
    编程规范:占位符
    设计模式:工厂模式
    代码整洁之道----读书笔记
    个人编程规范
    装饰器函数
    异常处理
  • 原文地址:https://www.cnblogs.com/zhanqing/p/httpclient.html
Copyright © 2011-2022 走看看