http接口 两种调用http接口的方法
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接口的方法的更多相关文章
- java 调用wsdl的webservice接口 两种调用方式
关于wsdl接口对于我来说是比较头疼的 基本没搞过.一脸懵 就在网上搜 看着写的都很好到我这就不好使了,非常蓝瘦.谨以此随笔纪念我这半个月踩过的坑... 背景:短短两周除了普通开发外我就接到了两个we ...
- java接口对接——别人调用我们接口获取数据
java接口对接——别人调用我们接口获取数据,我们需要在我们系统中开发几个接口,给对方接口规范文档,包括访问我们的接口地址,以及入参名称和格式,还有我们的返回的状态的情况, 接口代码: package ...
- 调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)
调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)
- GIT将本地项目上传到Github(两种简单、方便的方法)
GIT将本地项目上传到Github(两种简单.方便的方法) 一.第一种方法: 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安 ...
- php 两种获取分类树的方法
php 两种获取分类树的方法 1. /** * 获取分类树 * @param array $array 数据源 * @param int $pid 父级ID * @param int $level 分 ...
- 两种读取.xml文件的方法
这里介绍两种读取配置文件(.xml)的方法:XmlDocument及Linq to xml 首先简单创建一个配置文件: <?xml version="1.0" encodin ...
- Java中实现序列化的两种方式 Serializable 接口和 Externalizable接口
对象的序列化就是将对象写入输出流中. 反序列化就是从输入流中将对象读取出来. 用来实现序列化的类都在java.io包中,我们常用的类或接口有: ObjectOutputStream:提供序列化对象并把 ...
- asp.net使用wsdl文件调用接口,以及调用SSL接口报错“根据验证过程 远程证书无效”的处理
1.调用wsdl接口,首先需要将wsdl文件转换为cs文件: 进入VS 开发人员命令提示行,输入如下命令: c:/Program Files/Microsoft Visual Studio 8/VC& ...
- thinkphp的钩子的两种配置和两种调用方法
thinkphp的钩子行为类是一个比较难以理解的问题,网上有很多写thinkphp钩子类的文章,我也是根据网上的文章来设置thinkphp的钩子行为的,但根据这些网上的文章,我在设置的过程中,尝试了十 ...
随机推荐
- C++入职学习篇--代码规范(持续更新)
C++入职学习篇--代码规范(持续更新) 一.头文件规范 在头文件中大家一般会定义宏.引入库函数.声明.定义全局变量等,在设计时最后进行分类,代码示范(自己瞎琢磨的,请多多指点): #ifndef T ...
- Luogu P1187 3D模型
题目描述 一座城市建立在规则的n×m网格上,并且网格均由1×1正方形构成.在每个网格上都可以有一个建筑,建筑由若干个1×1×1的立方体搭建而成(也就是所有建筑的底部都在同一平面上的).几个典型的城市模 ...
- How to start a pdf reader from a Linux command line?
Before you do this, you should be in a GOME or KDE environment, then type the following commands to ...
- 6.3.1 使用 pickle 模块读写二进制文件
Python 标准库 pickle 提供的 dump() 方法 用于将数据进行序列化并写入文件(dump() 方法的protocol 参数为True 时可以实现压缩的效果),而load() 用于读取二 ...
- C#关键字详解第五节
最近有点忙于追剧<人民的名义>所以并未及时更新,所以大家理解理解,哈哈,这部剧很不错!推荐大家去 看看!下面我们继续C#关键字解释! const:常量 一般我们说常量都是以PI(3.14) ...
- ansible common modules
##Some common modules[cloud modules] [clustering modules] [command modules]command - executes a comm ...
- noip模拟赛 括号序列
题目描述LYK有一个括号序列,但这个序列不一定合法.一个合法的括号序列如下:()是合法的括号序列.若A是合法的括号序列,则(A)是合法的括号序列.若A和B分别是合法的括号序列,则AB是合法的括号序列. ...
- TSP服务商
1.何为TSP? TSP([1] Service Provider),在Telematics产业链居于核心地位,上接汽车.车载设备制造商.网络运营商,下接内容提供商.谁掌控了TSP,谁就能掌握Tele ...
- Hard模式题目
先过一下Hard模式的题目吧. # Title Editorial Acceptance Difficulty Frequency . 65 Valid Number 12.6% Ha ...
- joinColumns和inverseJoinColumns的使用方法
近期在工作中使用springside.里面用到了hibernate的多对多 一開始我在配置department(部门表)和menu(栏目表)的时候.这样写的. Department实体类中的getMe ...