前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >HttpClient-Json格式、设置超时

HttpClient-Json格式、设置超时

作者头像
wangmcn
发布2022-07-25 17:11:22
发布2022-07-25 17:11:22
60300
代码可运行
举报
文章被收录于专栏:AllTests软件测试AllTests软件测试
运行总次数:0
代码可运行

Json格式、设置超时

目录

  • 1、Json格式
  • 2、设置超时

1、Json格式

1、创建Json类。

发送数据将数据类型转为Json格式。

接收数据将数据类型转为Json格式。

脚本代码:

代码语言:javascript
代码运行次数:0
运行
复制
package com.test.demo;

import java.io.IOException;

import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
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.json.JSONObject;

/**
 * Json格式
 *
 * @author wangmcn
 *
 */
public class Json {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
              // 创建HttpPost对象
              HttpPost httpPost = new HttpPost("http://localhost:8083/json");

              // 设置请求头信息
              httpPost.setHeader("content-type", "application/json");
              // 添加Json参数
              JSONObject param = new JSONObject();
              param.put("username", "admin");
              param.put("password", "123456");
              // 将参数信息添加到方法中
              StringEntity entity = new StringEntity(param.toString(), "utf-8");
              httpPost.setEntity(entity);

              // 执行Post请求
              CloseableHttpResponse response = httpclient.execute(httpPost);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取响应结果
              String result = EntityUtils.toString(response.getEntity(), "utf-8");
              // 将返回的响应结果字符串转化成为Json对象
              JSONObject resultJson = new JSONObject(result);
              // 获取网页源码
              System.out.println("获取网页源码:" + resultJson);
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();
             
       }

}

2、运行结果:

2、设置超时

1、创建Overtime类。

代码语言:javascript
代码运行次数:0
运行
复制
setConnectTimeout() 设置连接超时时间,单位毫秒。
setSocketTimeout() 请求获取数据的超时时间,单位毫秒。
setConnectionRequestTimeout() 设置从connect Manager获取Connection超时时间,单位毫秒。

脚本代码:

代码语言:javascript
代码运行次数:0
运行
复制
package com.test.demo;

import java.io.IOException;

import org.apache.http.HttpEntity;
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.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

/**
 * 设置超时
 *
 * @author wangmcn
 *
 */

public class Overtime {

       public static void main(String[] args) throws ClientProtocolException, IOException {

              // 创建CloseableHttpClient对象
              CloseableHttpClient httpclient = HttpClients.createDefault();
              // 创建HttpGet对象
              HttpGet httpget = new HttpGet("http://central.maven.org/maven2/");

              // 设置超时
              RequestConfig requestConfig = RequestConfig.custom()
                            .setConnectTimeout(15000) // 设置连接超时时间,单位毫秒
                            .setSocketTimeout(15000) // 请求获取数据的超时时间,单位毫秒
                            .setConnectionRequestTimeout(15000) // 设置从connect Manager获取Connection超时时间,单位毫秒
                            .build();
              httpget.setConfig(requestConfig);

              // 执行Get请求
              CloseableHttpResponse response = httpclient.execute(httpget);
              // 获取响应状态
              System.out.println("获取响应状态: " + response.getStatusLine().getStatusCode());
              // 获取返回实体
              HttpEntity entity = response.getEntity();
              // 获取网页源码
              System.out.println("获取网页源码:" + EntityUtils.toString(entity, "utf-8"));
              // 获取响应内容类型
              System.out.println("获取响应内容类型:" + entity.getContentType().getValue());
              // 关闭流和释放系统资源
              response.close();
              // 关闭客户端
              httpclient.close();

       }

}

2、运行结果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档