Json格式、设置超时
1、Json格式
1、创建Json类。
发送数据将数据类型转为Json格式。
接收数据将数据类型转为Json格式。
脚本代码:
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类。
setConnectTimeout() 设置连接超时时间,单位毫秒。
setSocketTimeout() 请求获取数据的超时时间,单位毫秒。
setConnectionRequestTimeout() 设置从connect Manager获取Connection超时时间,单位毫秒。
脚本代码:
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、运行结果:
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!