httpclient调用方法

/**

* GET请求

*

* @param url

*            请求url,参数拼在请求串中

*/

public static String get(String url) {

String responseContent = null;

// 创建默认的httpClient实例.

CloseableHttpClient httpclient = HttpClients.createDefault();

CloseableHttpResponse response = null;

HttpGet httpGet = new HttpGet(url);

Logger.getRootLogger().info("--------------------------------------------");

Logger.getRootLogger().info("GET " + httpGet.getURI());

// 执行get请求.

try {

response = httpclient.execute(httpGet);

HttpEntity entity = response.getEntity();

// 打印响应状态

Logger.getRootLogger().info(response.getStatusLine());

if (entity != null) {

responseContent = EntityUtils.toString(entity);

// 打印响应内容

Logger.getRootLogger().info("Response content: "+ responseContent);

Logger.getRootLogger().info("--------------------------------------------");

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

httpclient.close();

response.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return responseContent;

}

/**

*

* @param url

* @param paramMap

*/

public static String post(String url, Map<String, String> paramMap) {

String responseContent = null;

// 创建默认的httpClient实例.

CloseableHttpClient httpclient = HttpClients.createDefault();

// 创建httppost

HttpPost httppost = new HttpPost(url);

Logger.getRootLogger().info("--------------------------------------------");

Logger.getRootLogger().info("POST " + httppost.getURI());

// 创建参数队列

List<BasicNameValuePair> formparams = new ArrayList<BasicNameValuePair>();

if (paramMap != null) {

Set<String> key = paramMap.keySet();

for (Iterator<String> it = key.iterator(); it.hasNext();) {

String paramKey = (String) it.next();

formparams.add(new BasicNameValuePair(paramKey, paramMap

.get(paramKey)));

Logger.getRootLogger().info(paramKey+" = "+paramMap.get(paramKey));

}

}

UrlEncodedFormEntity uefEntity;

try {

uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");

httppost.setEntity(uefEntity);

CloseableHttpResponse response = httpclient.execute(httppost);

try {

HttpEntity entity = response.getEntity();

Logger.getRootLogger().info(response.getStatusLine());

if (entity != null) {

responseContent = EntityUtils.toString(entity, "UTF-8");

Logger.getRootLogger().info("Response content: "+ responseContent);

Logger.getRootLogger().info("--------------------------------------------");

}

} finally {

response.close();

}

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

// 关闭连接,释放资源

try {

httpclient.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return responseContent;

}

时间: 2024-10-06 00:22:03

httpclient调用方法的相关文章

通过HttpClient 调用ASP.NET Web API

在前面两篇文章中我们介绍了ASP.NET Web API的基本知识和原理,并且通过简单的实例了解了它的基本(CRUD)操作.我们是通过JQuery和Ajax对Web API进行数据操作.这一篇我们来介绍一下使用HttpClient的方式来对Web API进行数据操作. 这里我们还是继续使用对Product的操作实例来演示一下它的基本应用. 创建ASP.NET Web API应用程序  在VS中选择创建一个ASP.NET Web Application应用程序,在向导的下一个窗口中选择Web AP

HttpClient有关方法及相关优化整理

HttpClient4中采用 ThreadSafeClientConnManager来保证线程的安全,优于2.0的 MultiThreadedHttpConnectionManager类.另外Apache官方强烈推荐只使用一个HttpClient的实例,所以我 们可以将以下demo方法写成单例模式. demo将使用StringEntity来完成不指定参数名发送Post,已经采用ThreadSafeClientConnManager来保证线程的安全 ? 1 2 3 4 5 6 7 8 9 10 1

HttpClient调用.net发布的带Windows NTML验证的webservice

使用HttpClient调用: 先要通过Windows NTML验证,然后才能调用 . 1 class WebServiceTest 2 { 3 4 /** 5 * 获取接口数据 6 * @param soapRequest 7 * @return String 8 */ 9 public String postSoapRequest(String soapRequest){ 10 CloseableHttpClient httpclient = HttpClients.createDefaul

利用HttpClient调用WebApi

可以利用HttpClient来进行Web Api的调用.由于WebA Api的调用本质上就是一次普通的发送请求与接收响应的过程, 所有HttpClient其实可以作为一般意义上发送HTTP请求的工具. using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace

点击UIWebView上文字调用方法

有的时候应用中需要通过点击网页中的文字或者按钮调用一个方法或事件,这时需要我们将网页与应用之间建立联系. 1.和服务器人员约定一个协议例如ios:// 2.当点击网页上文字或按钮时,跳转这个约定协议的路径 3.通过webview代理方法监听url,判断是哪个操作决定调用方法. window.location.href = 'iso://openCamer'; #pragma mark - UIWebViewDelegate /** 当webView发送一个请求之前都会调用这个方法, 返回YES,

ios系统铃声调用方法

首先,这里我要说明这里并不是真正调用系统内部自带的铃声,因为苹果是不允许开发者调用的,没有给开发者接口:如果调用了就无法上线的!那为什么AppStore里面还有那么多app显示的效果是调用系统的铃声一样呢?为什么就能上线呢?其实不然,他们是使用了系统一样的铃声!也就说他们录制和系统铃声相似,然后包含进他们的bundle中来实现的. 所以,我们想要实现调用系统铃声的效果,只能通过这个途径:把音频文件捆绑经我们的bundle中来调用,播放! 给一个网址,里面好多苹果系统铃声(ios8的也有啦....

函数常见的写法及调用方法整理

我们平时在阅读别人的代码的时候,总能看到别人在写函数的时候,有各种不同的写法及调用方法,今天就总结下我所遇到过的函数常见的写法及调用方法. 一.函数声明 // 函数的写法 function sum(a, b) { return a + b; } // 调用 sum(1,2); // 3  二.函数表达式 // 函数的写法 var sum = function (a, b) { return a + b; } // 调用 sum(2, 3); // 5 三.将方法作为一个对象 // 作为对象方法,

spring aop 动态代理批量调用方法实例

今天项目经理发下任务,需要测试 20 个接口,看看推送和接收数据是否正常.因为对接传输的数据是 xml 格式的字符串,所以我拿现成的数据,先生成推送过去的数据并存储到文本,以便验证数据是否正确,这时候要批量调用这些同名方法,我觉得这里可以发展成有潜力的代码. 推送比较好做数据,队友们都写好代码,但是有个问题,方法要的值都大致相同,封装的方式不一致,多人开发,有的封装对象里面,有的直接使用 Map.get(),唉,一千个人一千个哈姆雷特嘛,只好利用反射和动态代理节省自己的代码量,而且这种方式练练手

Atitit.编程语言原理---方法重载的实现与设计&#160;调用方法的原理

Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理 1. 重载包括:普通方法的重载和构造方法的重载 1 1.1. 横向重载”和“纵向重载”1 1.2. 方法签名通过  方法名称,参数数量,参数类型+返回类型 参数顺序(命名参数)来组成1 1.3. 重载(重新载选方法流程,如下图所示2 2. 重载的实现方法::argus参数 vs  默认值.可选参数法 可选参数3 2.1. __call()函数是php类的默认魔法函数 3 2.2. Java通过反射调用方法重载 执行方法4 2.