import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils; /*
第一种:httpClient 方式
所需jar包: commons-httpclient-3.0.1.jar 及其他依赖jar包
*/
public static void sendPostRequest1(Map<String,String> paramMap,String REQUEST_URL)
{
try {
HttpClient httpclient = new HttpClient();
httpclient.getParams().setHttpElementCharset("utf-8");
httpclient.getParams().setContentCharset("utf-8");
httpclient.getParams().setSoTimeout(10000); PostMethod post=new PostMethod(REQUEST_URL);
//参数数组
NameValuePair[] params=new NameValuePair[paramMap.size()]; int index=0;
for(String key : paramMap.keySet())
{
String value=paramMap.get(key);
NameValuePair n=new NameValuePair(key,value);
params[index]=n;
index++;
}
/*
另一种添加参数的方法:
post.addParameter(key, value);
*/
//设置请求参数
post.setRequestBody(params);
//开始请求
httpclient.executeMethod(post); // 判断请求响应状态码,状态码为200表示服务端成功响应了客户端的请求
if(post.getStatusCode()==200)
{
//获取返回消息字符串
String str=post.getResponseBodyAsString();
System.out.println(str);
} } catch (Exception e) {
e.printStackTrace();
}
} /*
第二种:HttpPost 方式
所需jar包: httpclient-4.3.5.jar、httpcore-4.3.2.jar 及其他依赖jar包
*/
public static void sendPostRequest2(Map<String,String> paramMap,String REQUEST_URL)
{
try { CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(REQUEST_URL);
//设置请求和传输超时时间
RequestConfig config=RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).build();
httpPost.setConfig(config);
List<org.apache.http.NameValuePair> list=new ArrayList<org.apache.http.NameValuePair>();
for(String key : paramMap.keySet())
{
String value=paramMap.get(key);
BasicNameValuePair n=new BasicNameValuePair(key,value);
list.add(n); }
//设置参数
HttpEntity httpEntity=new UrlEncodedFormEntity(list,HTTP.UTF_8);
httpPost.setEntity(httpEntity);
//开始请求
HttpResponse response=httpclient.execute(httpPost); // 判断请求响应状态码,状态码为200表示服务端成功响应了客户端的请求
if(response.getStatusLine().getStatusCode()==200)
{
//获取返回消息字符串
String result=EntityUtils.toString(response.getEntity()); System.out.println(result);
}
} catch (Exception e) {
e.printStackTrace();
}
}

http接口 两种调用http接口的方法的更多相关文章

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

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

  2. java接口对接——别人调用我们接口获取数据

    java接口对接——别人调用我们接口获取数据,我们需要在我们系统中开发几个接口,给对方接口规范文档,包括访问我们的接口地址,以及入参名称和格式,还有我们的返回的状态的情况, 接口代码: package ...

  3. 调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)

    调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)

  4. GIT将本地项目上传到Github(两种简单、方便的方法)

    GIT将本地项目上传到Github(两种简单.方便的方法) 一.第一种方法: 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安 ...

  5. php 两种获取分类树的方法

    php 两种获取分类树的方法 1. /** * 获取分类树 * @param array $array 数据源 * @param int $pid 父级ID * @param int $level 分 ...

  6. 两种读取.xml文件的方法

    这里介绍两种读取配置文件(.xml)的方法:XmlDocument及Linq to xml 首先简单创建一个配置文件: <?xml version="1.0" encodin ...

  7. Java中实现序列化的两种方式 Serializable 接口和 Externalizable接口

    对象的序列化就是将对象写入输出流中. 反序列化就是从输入流中将对象读取出来. 用来实现序列化的类都在java.io包中,我们常用的类或接口有: ObjectOutputStream:提供序列化对象并把 ...

  8. asp.net使用wsdl文件调用接口,以及调用SSL接口报错“根据验证过程 远程证书无效”的处理

    1.调用wsdl接口,首先需要将wsdl文件转换为cs文件: 进入VS 开发人员命令提示行,输入如下命令: c:/Program Files/Microsoft Visual Studio 8/VC& ...

  9. thinkphp的钩子的两种配置和两种调用方法

    thinkphp的钩子行为类是一个比较难以理解的问题,网上有很多写thinkphp钩子类的文章,我也是根据网上的文章来设置thinkphp的钩子行为的,但根据这些网上的文章,我在设置的过程中,尝试了十 ...

随机推荐

  1. js里的深度克隆

    ES6 数组克隆 let arr = [1,2,3,4,5]; let arr1 = [...a]; arr1 = ["a","b","c" ...

  2. EasyUI, Dialog 在框架页(ifrmae)的Top页面弹出时,拖拽Dialog边缘(以改变窗口大小),UI界面被卡死的解决办法

    将Dialog的modal属性设置为true,可以解决卡死的问题(但会给用户使用体验带来影响) var par = { title: This.title, width: This.width, he ...

  3. Gym - 101611D Decoding of Varints(阅读理解题 )

    Decoding of Varints ​ 题意&思路: 首先根据红色边框部分的公式算出x,再有绿色部分得知,如果x是偶数则直接除以2,x是奇数则(x+1)/-2. PS:这题有数据会爆掉un ...

  4. centos中安装jdk

    1.上传jdk安装文件到根目录 2.解压到相关目录 (1)创建相应目录mkdir -p /usr/local/java (2)解压 tar -zxvf jdk-7u80-linux-x64.tar.g ...

  5. 33.bucket与metric核心概念讲解

    主要知识点: bucket与metric核心慨念 一.核心慨念 1.bucket:一个数据分组 比如有下面几条数据: city name 北京 小李 北京 小王 上海 小张 上海 小丽 上海 小陈   ...

  6. 一个电商项目的Web服务化改造3:改进方案の规范和约定、单表、单一职责

         最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA.      有点挑战,做完了,会有很大进步. 上一篇,我们描述了原有项目中的问题.  或者说是,本篇的基本 ...

  7. textarea 提交到数据库的内容,输出到 html 中显示正常的格式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 【Codeforces 27A】Next Test

    [链接] 我是链接,点我呀:) [题意] 让你求没出现过的最小值 [题解] 模拟..for一下就好 [代码] import java.io.*; import java.util.*; public ...

  9. qwb与小数

    qwb与小数 Time Limit: 1 Sec  Memory Limit: 128 MB Description qwb遇到了一个问题:将分数a/b化为小数后,小数点后第n位的数字是多少? 做了那 ...

  10. [转]十五天精通WCF——终结篇 那些你需要注意的坑

    终于一路走来,到了本系列的最后一篇了,这一篇也没什么好说的,整体知识框架已经在前面的系列文章中讲完了,wcf的配置众多,如果 不加一些指定配置,你可能会遇到一些灾难性的后果,快来一睹为快吧. 一: 第 ...