一.参数字符串

/**
* HttpClient请求接口
* @return 成功:音频字节 失败:null
*/
public static byte[] requestBaiduAudio(String url,Map<String, String> parameter) {

PostMethod post = null;
try {
HttpClient client = new HttpClient();

// 连接超时:10秒
client.getHttpConnectionManager().getParams().setConnectionTimeout(10 * 1000);

// 读取超时:10 秒
client.getHttpConnectionManager().getParams().setSoTimeout(10 * 1000);

post = new PostMethod(url);
post.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");// 在头文件中设置转码
post.setRequestHeader("Connection", "close");

NameValuePair[] data = new NameValuePair[parameter.size()];
Object s[] = parameter.keySet().toArray();
for (int i = 0; i < parameter.size(); i++) {
NameValuePair namevalue = new NameValuePair(s[i].toString(), parameter.get(s[i]));
data[i] = namevalue;
}

post.setRequestBody(data);

//发送请求
client.executeMethod(post);

//返回结果
byte[] responseBody = null;
Header contentType = post.getResponseHeader("Content-Type");
if(contentType.getValue().contains("audio/")){
responseBody = post.getResponseBody();
}else {
System.err.println("ERROR: content-type= " + contentType);
String res = post.getResponseBodyAsString();
System.err.println(res);
}

post.releaseConnection();// 释放链接

return responseBody;
} catch (Exception e) {
if (post != null)
post.releaseConnection();// 释放链接
}
return null;
}

二,参数为json

/**
* HttpClient Json 请求接口
* @return json
*/
public static JSONObject request(String url,JSONObject json) {
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(8 * 1000) //设置连接超时时间,单位毫秒
.setSocketTimeout(8 * 1000) //请求获取数据的超时时间,单位毫秒
.build();
CloseableHttpClient httpclient = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
HttpPost post = new HttpPost(url);
StringEntity params = new StringEntity(json.toString(), "utf-8");
params.setContentType("text/html;charset=UTF-8");
params.setContentEncoding("UTF-8");
post.setEntity(params);
JSONObject response = null;
try {
HttpResponse res = httpclient.execute(post);
if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
String result = EntityUtils.toString(res.getEntity());// 返回json格式:
response = JSONObject.parseObject(result);
}else{
System.out.println(res.getStatusLine().getStatusCode());
}

} catch (Exception e) {
e.printStackTrace();
}

return response;
}

需要jar包: httpcore-4.4.10.jar,httpclient-4.5.2.jar,commons-httpclient-3.0.1.jar,commons-codec-1.9.jar

HttpClient两种调用方式的更多相关文章

  1. c++のdll两种调用方式

    调用DLL有两种方法:静态调用和动态调用. (一).静态调用其步骤如下: 1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下; 2.把你的youApp. ...

  2. java 调用wsdl的webservice接口 两种调用方式

    关于wsdl接口对于我来说是比较头疼的 基本没搞过.一脸懵 就在网上搜 看着写的都很好到我这就不好使了,非常蓝瘦.谨以此随笔纪念我这半个月踩过的坑... 背景:短短两周除了普通开发外我就接到了两个we ...

  3. GET 和 POST两种调用方式

    http://www.cnblogs.com/java-pan/archive/2012/02/26/httpclient-post-get.html 通过get和post方式调用http接口,总结如 ...

  4. html5 中的 css样式单 的 两种调用方式的区别

    在 html5 中 使用 css 样式单的方式 有4种: 1.链接外部样式文件:将样式文件 彻底与 html 文档分离,样式文件需要额外引入,这种情况下 一批样式 可以控制多份文档.对于好多文件都共有 ...

  5. webservice的两种调用方式

    如下 using ConsoleApplication1.TestWebService; using System; using System.Collections; using System.Co ...

  6. Web APi之认证(Authentication)两种实现方式【二】(十三)

    前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...

  7. Android中Fragment与Activity之间的交互(两种实现方式)

    (未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...

  8. JavaScript 函数的两种声明方式

    1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...

  9. Redis两种持久化方式(RDB&AOF)

    爬虫和转载请注明原文地址;博客园蜗牛:http://www.cnblogs.com/tdws/p/5754706.html Redis所需内存 超过可用内存怎么办 Redis修改数据多线程并发—Red ...

随机推荐

  1. postgresql与mysql 优缺点

    MySQL的主要优点 (速度,流行,window,线程,事务) 1. 首先是速度,MySQL通常要比PostgreSQL快得多.MySQL自已也宣称速度是他们追求的主要目标之一,基于这个原因,MySQ ...

  2. springboot整合mybatis-plus基于纯注解实现一对一(一对多)查询

    因为目前所用mybatis-plus版本为3.1.1,感觉是个半成品,所有在实体类上的注解只能支持单表,没有一对一和一对多关系映射,且该功能还在开发中,相信mybatis-plus开发团队在不久的将来 ...

  3. centos 7 安装 LNMPC cacti 1.2.7 监控

    先上图,后续更新

  4. Hive优化(十一)

    Hive优化 ​ Hive的存储层依托于HDFS,Hive的计算层依托于MapReduce,一般Hive的执行效率主要取决于SQL语句的执行效率,因此,Hive的优化的核心思想是MapReduce的优 ...

  5. CUDA C编程——NO.1

    CUDA C编程 啥玩意是CUDA? CUDA® is a parallel computing platform and programming model invented by NVIDIA. ...

  6. java-接口—策略模式

    策略模式,就是不同类继承相同的接口,实现不同的策略.

  7. HH的项链 HYSBZ - 1878 (莫队/ 树状数组)

    HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此他的项链变得越来越长.有一天,他突然 ...

  8. Summer training #11

    A:水 #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <a ...

  9. 洛谷P3264 [JLOI2015]管道连接 (斯坦纳树)

    题目链接 题目大意:有一张无向图,每条边有一定的花费,给出一些点集,让你从中选出一些边,用最小的花费将每个点集内的点相互连通,可以使用点集之外的点(如果需要的话). 算是斯坦纳树的入门题吧. 什么是斯 ...

  10. 【构造 meet in middle 随机 矩阵树定理】#75. 【UR #6】智商锁

    没智商了 变式可见:[构造 思维题]7.12道路建设 当你自信满满地把你认为的正确密码输入后,时光机滴滴报警 —— 密码错误.你摊坐在了地上. 黑衣人满意地拍了拍你的肩膀:“小伙子,不错嘛.虽然没解开 ...