zoukankan      html  css  js  c++  java
  • CloseableHttpClient获取返回结果


    import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.Calendar; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpStatus; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPut; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.gson.Gson;
    /** * 接口签名演示类 */ public class SignatureDemo { private static final Logger logger = LoggerFactory.getLogger(SignatureDemo.class); // 接口服务地址 static String restSever = "http://192.168.10.173:11080/ums/service/V1/res/users"; // 身份系统签发给应用对接的密钥 static String pwd = "ZNn2fdrvSWR+aGN2ORe/CtMfIq4yuJSzFBtVuaqVnUEJ457QB3W7l0T9yslAMr3H"; public static void main(String[] args) { // 创建HttpClient对象 CloseableHttpClient httpclient = HttpClients.createDefault(); /** * GET查询接口演示代码 */ HttpGet httpGet = new HttpGet(getFullUrl); // 对参数签名,并放入请求header中的signData参数中 try { String urlStr = httpGet.getURI().toString(); if (StringUtils.endsWith(urlStr, "/")) { urlStr = StringUtils.removeEnd(urlStr, "/"); } httpGet.setURI(new URI(urlStr)); RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(3000) .setConnectionRequestTimeout(3000).setSocketTimeout(3000).build(); httpGet.setConfig(requestConfig); // 执行请求 CloseableHttpResponse response = httpclient.execute(httpGet); // 取响应的结果 int statusCode = response.getStatusLine().getStatusCode(); // 打印响应结果 if (statusCode == HttpStatus.SC_OK) { String resp = EntityUtils.toString(response.getEntity(), "utf-8"); System.out.println("status:" + statusCode); System.out.println("result:" + resp); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } /** * PUT修改接口的演示代码,POST与PUT类似 */ String ID = "aa03a5c692cf480b87887e0ff8cfe566"; // 这里若是通过ID查询的,接口中ID是作为路径存在的,所以需要将ID组合成 String putQueryParam = "ID=" + ID; String putFullUrl = restSever + "/" + ID; // 访问用户接口 HttpPut httpPut = new HttpPut(putFullUrl); // 模拟POST/PUT的body中数据,需转为JSON进行签名。GET则没有这部分内容。 Map<String, Object> dataMap = new HashMap<String, Object>(); dataMap.put("USER_NAME", "张三"); String bodyParam = new Gson().toJson(dataMap); String postAllParamUrl = commonParamUrl + "&" + putQueryParam + "&bodyData=" + bodyParam; StringEntity bodyData = new StringEntity(bodyParam.toString(), "UTF-8"); httpPut.setEntity(bodyData); try { String urlStr = httpPut.getURI().toString(); // 公共参数URL System.out.println("commonParamter:" + urlStr); if (StringUtils.endsWith(urlStr, "/")) { urlStr = StringUtils.removeEnd(urlStr, "/"); } httpPut.setURI(new URI(urlStr)); RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(3000) .setConnectionRequestTimeout(3000).setSocketTimeout(3000).build(); httpPut.setConfig(requestConfig); System.out.println("urlStr in request:" + httpPut.getURI().toString()); // 执行请求 CloseableHttpResponse response = httpclient.execute(httpPut); // 取响应的结果 int statusCode = response.getStatusLine().getStatusCode(); // 打印响应结果 if (statusCode == HttpStatus.SC_OK) { String resp = EntityUtils.toString(response.getEntity(), "utf-8"); System.out.println("status:" + statusCode); System.out.println("result:" + resp); } } catch (URISyntaxException e) { logger.error("签名失败:", e); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
  • 相关阅读:
    CentOS7和Ubuntu18.10下运行Qt Creator出现cannot find -lGL的问题的解决方案
    C++中使用CMake编译管理项目
    C++ std::isnan等函数的使用
    七个开源的 Spring Boot 前后端分离项目,一定要收藏!
    基于Select模型的Windows TCP服务端和客户端程序示例
    简单的C++11线程池实现
    Windows下FFMEPG编译
    MIMO431学习笔记目录
    golang调用海康sdk
    GRPC-go版本
  • 原文地址:https://www.cnblogs.com/lovetl/p/14291478.html
Copyright © 2011-2022 走看看