import org.apache.http.client.methods.CloseableHttpResponse; //导入方法依赖的package包/类

/**

* Makes a HTTP request to the given URL using the given request body,

* parameters and HTTP headers. The parameters are used as URL parameters,

* but if there's a parameter "resourceId", it's added directly to the end

* of the URL. If there's no request body, the value can be null.

*

* @param url URL where the request is sent

* @param params request parameters

* @param requestBody request body

* @param headers HTTP headers to be added to the request

* @return response as string

*/

@Override

public ClientResponse send(String url, String requestBody, Map params, Map headers) {

// Build target URL

url = ClientUtil.buildTargetURL(url, params);

// Create HTTP client

CloseableHttpClient httpClient = HttpClients.createDefault();

// Build request

HttpUriRequest request = this.buildtHttpRequest(url, requestBody, headers);

LOGGER.info("Starting HTTP {} operation.", request.getMethod());

// Add headers

if (headers != null && !headers.isEmpty()) {

for (Map.Entry entry : headers.entrySet()) {

LOGGER.debug("Add header : \"{}\" = \"{}\"", entry.getKey(), entry.getValue());

request.setHeader(entry.getKey(), entry.getValue());

}

}

try {

//Send the request; It will immediately return the response in HttpResponse object

CloseableHttpResponse response = httpClient.execute(request);

// Get Content-Type header

Header[] contentTypeHeader = response.getHeaders("Content-Type");

String contentType = null;

// Check for null and empty

if (contentTypeHeader != null && contentTypeHeader.length > 0) {

contentType = contentTypeHeader[0].getValue();

}

// Get Status Code

int statusCode = response.getStatusLine().getStatusCode();

// Get reason phrase

String reasonPhrase = response.getStatusLine().getReasonPhrase();

// Get response payload

String responseStr = ClientUtil.getResponseString(response.getEntity());

response.close();

httpClient.close();

LOGGER.debug("REST response content type: \"{}\".", contentType);

LOGGER.debug("REST response status code: \"{}\".", statusCode);

LOGGER.debug("REST response reason phrase: \"{}\".", reasonPhrase);

LOGGER.debug("REST response : \"{}\".", responseStr);

LOGGER.info("HTTP {} operation completed.", request.getMethod());

return new ClientResponse(responseStr, contentType, statusCode, reasonPhrase);

} catch (IOException e) {

LOGGER.error(e.getMessage(), e);

LOGGER.warn("HTTP {} operation failed. An empty string is returned.", request.getMethod());

return null;

}

}

java url headers,Java CloseableHttpResponse.getHeaders方法代码示例相关推荐

  1. java secretkey用法_Java SecretKeyFactory.generateSecret方法代码示例

    本文整理汇总了Java中javax.crypto.SecretKeyFactory.generateSecret方法的典型用法代码示例.如果您正苦于以下问题:Java SecretKeyFactory ...

  2. java polygon 用法_Java Polygon.getBounds方法代码示例

    import java.awt.Polygon; //导入方法依赖的package包/类 private SelectionShape translatePointsToRealSize(Select ...

  3. java makedir用法_Java Files.makeDir方法代码示例

    import org.nutz.lang.Files; //导入方法依赖的package包/类 protected void download(String openid, String media_ ...

  4. java args包_Java Args.positive方法代码示例

    import org.apache.http.util.Args; //导入方法依赖的package包/类 /** * Creates new instance of BHttpConnectionB ...

  5. java shape用法_Java PShape.scale方法代码示例

    import processing.core.PShape; //导入方法依赖的package包/类 public void updateAnim(){ if(pg_src_small == null ...

  6. java round指令_Java PApplet.round方法代码示例

    import processing.core.PApplet; //导入方法依赖的package包/类 public static final void updatePos() { if(follow ...

  7. Java 怎么 get char_Java KeyCharacterMap.getDeadChar方法代码示例

    import android.view.KeyCharacterMap; //导入方法依赖的package包/类 @Override public boolean onKeyDown(int keyC ...

  8. java gettext用法_Java Context.getText方法代码示例

    import android.content.Context; //导入方法依赖的package包/类 /** * Song Details * * @param context * @param t ...

  9. java soap封装_Java SOAPMessage.writeTo方法代码示例

    import javax.xml.soap.SOAPMessage; //导入方法依赖的package包/类 private byte[] createProbeXML() throws SOAPEx ...

最新文章

  1. 未来网络发展的趋势——IPv6详细讲解与基本配置
  2. hdu 1166 敌兵布阵 (线段树)
  3. 2019运维技能风向标
  4. C++中多态性学习(上)
  5. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)
  6. 流操作中的noException
  7. 黑苹果uhd630黑屏_求助各位图吧大佬一个黑苹果问题(黑苹果吧发帖得四级),目前使...
  8. liunx mysql端口没开_linuxmysql可以terminal登录,3306端口未打开原因记录(转)
  9. WCF系列之什么是WCF
  10. 凤凰服务器系统,凤凰系统云服务器
  11. 单目摄像机标定与双目摄像机标定有什么区别
  12. 关于苹果投资滴滴背后的三点疑问
  13. 【自然语言处理】【多模态】Product1M:基于跨模态预训练的弱监督实例级产品检索
  14. 爬取巨潮资讯网中与“贵州茅台”相关的公告的标题和网址。
  15. 宇宙的本源—存在之道和变化之道
  16. android获取网页接口JSON数据
  17. 举个栗子!Tableau 技巧(93):用 热图标记 地图或散点图
  18. Python爬虫可以爬取什么呢?
  19. 英语电影观后感之角斗士
  20. V831——条形码识别

热门文章

  1. 计算机院校人气排名,2019高校人气排行榜_最具人气大学排行榜7月榜单发布 清华大学排第一...
  2. eclipseini设置使用的jdk_系统安全篇(四)-如何升级JDK版本?
  3. 爬虫:利用cookie获取人人网登录后网页信息
  4. python 中 yield 的使用
  5. python对Excel的操作 xlrd、xlwt包详解
  6. C语言有参函数调用时参数间数据传递问题
  7. python的继承与多态
  8. Python 操作 redis
  9. Java加密与解密的艺术~数字证书~证书使用openssl
  10. Java消息服务~自动分配的消息头