文档章节

HttpClient发送GET和POST请求

大海201506
 大海201506
发布于 2017/06/02 11:16
字数 372
阅读 49
收藏 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
粉丝 5
博文 96
码字总数 173986
作品 0
广州
程序员
私信 提问
HttpClient以及整合SpringBoot

一、HttpClient 1.1、 前台系统访问后台接口的方式 两个系统间如何互相访问?两个tomcat上的项目如何互相访问 1.2、 什么是HttpClient 官网:http://hc.apache.org/index.html 现在也叫:Htt...

Armymans
2018/11/10
0
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
httpClient发送的请求是不是用Html协议的啊?

我用httpClient发送一个Post请求,但用监控机器上所有http请求的软件Fiddler却没发现httpClient发送过去的请求!!!这是怎么回事???

jakic
2012/12/21
577
4
HttpClient使用详解(http伪造文件上传请求)

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

岸芷汀兰
2015/08/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

对Docker了解多少?10分钟带你从入门操作到实战上手

Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windows10目前也原生支持,W...

别打我会飞
15分钟前
0
0
Java自定义注解及应用

前沿 java目前只内置了三种标准注解 注解 解释 @Override 表示当前的方法定义将覆盖超类中的方法。如果你不小心拼写错误,或者方法签名对不上被覆盖的方法,编译器就会发出错误提示 @Depreca...

细节探索者
19分钟前
0
0
Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpeg有非常强大...

红土豆
23分钟前
0
0
谈谈lucene的DocValues特性之SortedDocValuesField

lucene的DocValues不同于document文档级别的存储,它是一个面向列的存储结构,提供从文档编号到值的映射功能。根据不同的数据类型和应用场景支持多个DocValuesField类型,SortedDocValuesFi...

FAT_mt
36分钟前
3
0
漏洞防御与修复工作

导读 漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术...

问题终结者
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部