http方法调用接口

打印 上一主题 下一主题

主题 1057|帖子 1057|积分 3175

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
调用post方法
  1. public static String doPostWeChat(String accessToken, String url, String tradeCode) throws Exception {
  2.     // 创建一个默认的 HTTP 客户端实例
  3.     CloseableHttpClient client = HttpClients.createDefault();
  4.     CloseableHttpResponse response = null; // 响应对象初始化为空
  5.     String context = StringUtils.EMPTY; // 初始化返回内容为空字符串
  6.     HttpPost method = new HttpPost(url); // 创建 HTTP POST 请求对象,指定请求的 URL
  7.     try {
  8.         // 配置请求超时时间
  9.         RequestConfig requestConfig = RequestConfig.custom()
  10.                 .setSocketTimeout(20000) // 读取数据超时时间(20秒)
  11.                 .setConnectTimeout(40000) // 连接超时时间(40秒)
  12.                 .setConnectionRequestTimeout(20000) // 从连接池获取连接的超时时间(20秒)
  13.                 .build();
  14.         method.setConfig(requestConfig); // 将配置应用到请求对象
  15.         method.addHeader("Authorization", accessToken); // 添加授权头部
  16.         method.addHeader("company", tradeCode); // 添加公司代码头部
  17.         
  18.         log.info(String.format("%s-----%s", "", "accessToken="+accessToken + "准备数据请求")); // 记录日志,表明请求准备发送
  19.         response = client.execute(method); // 发送请求并获取响应
  20.         log.info(String.format("%s-----%s", "", "accessToken="+accessToken + "请求已发送")); // 记录日志,表明请求已发送
  21.         
  22.         HttpEntity resEntity = response.getEntity(); // 获取响应实体
  23.         context = EntityUtils.toString(resEntity, "UTF-8"); // 将响应实体转换为字符串(UTF-8 编码)
  24.     } catch (Exception e) {
  25.         throw e; // 抛出异常,供调用者处理
  26.     } finally {
  27.         if (response != null) {
  28.             try {
  29.                 EntityUtils.consume(response.getEntity()); // 确保响应实体被完全消费
  30.                 response.close(); // 关闭响应对象
  31.                 method.abort(); // 中止请求
  32.                 client.close(); // 关闭 HTTP 客户端
  33.             } catch (IOException e) {
  34.                 // 在此可以添加日志记录或其他处理逻辑
  35.             }
  36.         }
  37.     }
  38.     return context; // 返回响应内容
  39. }
复制代码
调用get接口
  1. import org.apache.http.client.methods.CloseableHttpResponse;  
  2. import org.apache.http.client.methods.HttpGet;  
  3. import org.apache.http.impl.client.CloseableHttpClient;  
  4. import org.apache.http.impl.client.HttpClients;  
  5. import org.apache.http.util.EntityUtils;  
  6. import org.apache.commons.lang3.StringUtils;  
  7.   
  8. import java.io.IOException;  
  9.   
  10. public static String doGetWeChat(String accessToken, String url, String tradeCode) throws IOException {  
  11.     // 创建一个默认的 HTTP 客户端实例  
  12.     try (CloseableHttpClient client = HttpClients.createDefault()) {  
  13.         // 创建 HTTP GET 请求对象,并添加查询参数(如果需要的话)  
  14.         // 注意:这里假设url已经包含了所有必要的查询参数,或者我们将通过StringBuilder来动态构建它  
  15.         // 如果需要添加查询参数,可以使用URIBuilder  
  16.         HttpGet method = new HttpGet(url + "?accessToken=" + accessToken + "&tradeCode=" + tradeCode);  
  17.   
  18.         // 配置请求超时时间(可选,根据需要设置)  
  19.         // 如果不需要,可以省略这一步  
  20.         // ...(与POST请求中相同的配置方式)  
  21.   
  22.         // 发送请求并获取响应  
  23.         try (CloseableHttpResponse response = client.execute(method)) {  
  24.             // 获取响应实体  
  25.             String context = EntityUtils.toString(response.getEntity(), "UTF-8"); // 将响应实体转换为字符串(UTF-8 编码)  
  26.   
  27.             // 可以在这里添加对响应状态码的检查  
  28.             // 例如:if (response.getStatusLine().getStatusCode() == 200) { ... }  
  29.   
  30.             return context; // 返回响应内容  
  31.         }  
  32.     } catch (IOException e) {  
  33.         // 处理可能的异常,比如网络问题、解析问题等  
  34.         throw e; // 或者根据需要处理异常,比如记录日志、返回错误信息等  
  35.     }  
  36. }  
  37.   
  38. // 注意:  
  39. // 1. 这里使用了try-with-resources语句来自动关闭CloseableHttpClient和CloseableHttpResponse,以确保资源被正确释放。  
  40. // 2. 如果URL中包含敏感信息(如accessToken),请确保使用HTTPS来保护通信安全。  
  41. // 3. 如果URL中的查询参数较多或构建逻辑较复杂,建议使用URIBuilder来构建URL,以避免URL编码等问题。
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表