文档章节

HttpClient发送GET和POST请求

大海201506
 大海201506
发布于 2017/06/02 11:16
字数 372
阅读 32
收藏 2
点赞 0
评论 0

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
博文 80
码字总数 180595
作品 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使用详解(http伪造文件上传请求)

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

岸芷汀兰
2015/08/09
0
0
Android使用Apache HttpClient发送GET、POST请求

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

我的去哈哈
2014/06/02
0
0
研究支付时碰到了 httpclient 围观

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

JAVA码猿
2017/11/07
0
0
apache.commons.httpclient.HttpClient get/post请求

一、httpclient 发送请求的步骤(流程) 1、创建httpclient 对象 2、创建某种连接方式的对象 --如 GetMethod PostMethod 等对象,构造函数中是请求地址即url,如果是get请求可以在url后面添加...

QH_C
2015/04/13
0
0
HTTP协议和HttpClient的入门

HTTP协议的发展史没有了解,是给予请求与响应模式的、无连接、无状态的应用层的协议。 HTTP协议 HTTP协议的URL HTTP URL(URL是一种特殊类型的URI,包含了勇于查找某个资源的足够的信息)的格式...

凹凸口天
2013/07/15
0
0
Java httpclient获得连接

package com.yuan.test;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.entit......

Oscarfff
2015/05/05
0
0
java模拟HTTP请求(集合了网上搜来的各种)

Java发送http请求 (get 与 post方法请求) Java发送http请求 (get 与post方法请求),以下代码经本人亲自调试可用!可以直接使用之。 注意:通过BufferedReader 读取远程返回的数据时,必须设置...

Yason_Luo
2014/01/08
0
1
使用单例模式实现自己的HttpClient工具类

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

moz1q1
2015/04/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
2分钟前
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
4分钟前
0
0
合格前端第十二弹-TypeScript + 大型项目

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
7分钟前
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
9分钟前
0
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
24分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
31分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
35分钟前
1
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
38分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
40分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
54分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部