文档章节

HttpClient发送GET和POST请求

大海201506
 大海201506
发布于 2017/06/02 11:16
字数 372
阅读 37
收藏 2

GET请求:

   @Override
    public Object Get(List<SysNews> sysNewsList,Integer num, Integer offset) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        
        try {
            // 签名
            String utf8Tag = java.net.URLEncoder.encode(tag,"utf-8");
            String uri = String.format(GET_FEEDS_URI, utf8Tag, num, offset);
            String auth_string = ak + "\n" + auth_time + "\n" + rand_num + "\n" + uri;
            String encrypt_string = HUAJIAOSign.Base64.encode(HUAJIAOSign.hmacSha1(auth_string, sk));
            String authorization = ak + ":" + encrypt_string;//
            
            String url = String.format(GET_FEEDS_URL, utf8Tag, num, offset);
            HttpGet httpget = new HttpGet(url);  
            
            //header中传递的参数
            httpget.setHeader("Authorization", authorization);//签名
            httpget.setHeader("Channelid", Channelid);//开放平台创建应用是系统分配的channelID
            httpget.setHeader("Auth-Time", auth_time);//请求时间戳
            httpget.setHeader("Rand-Num", rand_num);//随机数
            
            //执行请求
            HttpResponse httpResponse = httpClient.execute(httpget);
            if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
                    String result = EntityUtils.toString(httpResponse.getEntity());// 返回json格式:
                    response = JSONObject.fromObject(result);
                }
            } catch (Exception e) {
                log.error(e.toString());
            }
        
        return response;  
    }

 

POST请求:

    public static Object doPay(String url) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        
        JSONObject response = null;
        try {
            StringBuilder sb = new StringBuilder();
            // 签名
            String auth_string = ak + "\n" + auth_time + "\n" + rand_num + "\n" + GET_FEEDS_URI;
            String encrypt_string = HUAJIAOSign.Base64.encode(HUAJIAOSign.hmacSha1(auth_string, sk));
            String authorization = ak + ":" + encrypt_string;//
            
            log.info("  authorization======" + authorization);

            HttpPost post = new HttpPost(url);  
            
            //header中传递的参数
            post.setHeader("Authorization", authorization);//签名
            post.setHeader("Channelid", "qianqianluhui");//开放平台创建应用是系统分配的channelID
            post.setHeader("Auth-Time", auth_time);//请求时间戳
            post.setHeader("Rand-Num", rand_num);//随机数
            
            //请求体
            //创建参数列表
            List<NameValuePair> list = new ArrayList<NameValuePair>();
            list.add(new BasicNameValuePair("platform", "server"));// 平台(固定值传server)
            list.add(new BasicNameValuePair("tag", "video"));//标签
            list.add(new BasicNameValuePair("num", "1"));// 每次返回数量(默认50条记录,取值范围1~100)
            list.add(new BasicNameValuePair("offset", "0"));// 偏移量,上次请求返回offset值,首次传0或不传
            //url格式编码
            UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(list,"UTF-8");
            post.setEntity(uefEntity);

            //执行请求
            HttpResponse httpResponse = httpClient.execute(post);
            if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
                HttpEntity entity = httpResponse.getEntity();
                String result = EntityUtils.toString(httpResponse.getEntity());// 返回json格式:
                response = JSONObject.fromObject(result);
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        
        return response;
    }

 

© 著作权归作者所有

共有 人打赏支持
大海201506
粉丝 4
博文 92
码字总数 196287
作品 0
广州
程序员
Apache HttpClient 4.3开发指南

一、概述 Apache HttpClient 4系列已经发布很久了,但由于它与HttpClient 3.x版本完全不兼容,以至于业内采用此库的公司较少,在互联网上也少有相关的文档资料分享。 本文旨在写一个简要的A...

Zero__One
2014/02/16
0
0
Android 浅谈HttpClient工具类

在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务。你可以把HttpClient想象成一个浏览器,通过它的...

Jonson
2013/07/25
0
3
Android使用Apache HttpClient发送GET、POST请求

简单的网页下载,HttpURLConnection可以完成,但是涉及到用户登录等权限相关问题,就需要涉及Session、Cookies。,就很难使用HttpURLConnection来处理了。Apache开源组织提供了一个HttpClien...

我的去哈哈
2014/06/02
0
0
HttpClient使用详解(http伪造文件上传请求)

Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发...

岸芷汀兰
2015/08/09
0
0
研究支付时碰到了 httpclient 围观

HttpClient最重要的功能是执行HTTP方法。一个HTTP方法的执行包含一个或多个HTTP请求/HTTP响应交换,通常由HttpClient的内部来处理。而期望用户提供一个要执行的请求对象,而HttpClient期望传...

JAVA码猿
2017/11/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
12分钟前
0
0
Jenkins使用

clean install -Dmaven.test.skip=true

1713716445
22分钟前
0
0
多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
0
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
今天
3
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部