您的位置:首页 > 理论基础 > 计算机网络

http请求测试实例(采用fastjson解析)

2017-10-09 19:05 1136 查看
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import com.alibaba.fastjson.JSONObject;

public class TTest {

private String serverURL = "http://serviceAddress/system";
private String address = "/address/queryInfo";
private String username = "lisi";
private String password = "123";

@Before
public void setUp() throws Exception {
}

@Test
public void queryInfo_test() throws Exception {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("queryName", "张三");
paramMap.put("age", 30);
String paramJson = JSONObject.toJSONString(paramMap);
String result = httpConnectionWithAuth(serverURL, address, paramJson, username, password);
//String result = httpConnectionWithNoAuth(serverURL, address, paramJson);
JSONObject object = JSONObject.parseObject(result);
Assert.assertEquals(object.get("result"), true);
}

/**
* 带认证的请求
*/
private String httpConnectionWithAuth(String url, String addr, String json, String un, String pw) throws Exception {
System.out.println("请求参数:\r\n" + json);
System.out.println("请求地址:" + url + addr);
HttpClient client = new HttpClient();
PostMethod postMethod = new PostMethod(url + "//j_security_check");

NameValuePair[] param = { new NameValuePair("j_username", un), new NameValuePair("j_password", pw),
new NameValuePair("SMAUTHREASON", "0") };

postMethod.setRequestBody(param);
client.executeMethod(postMethod);
postMethod.releaseConnection();

GetMethod method = new GetMethod(url + "/do/LoginController/login");
client.executeMethod(method);

long s = System.currentTimeMillis();
postMethod = new PostMethod(url + addr);
postMethod.setRequestBody(json);
postMethod.addRequestHeader("Content-Type", "application/json;charset=UTF-8");
client.executeMethod(postMethod);
long t = System.currentTimeMillis();
String result = postMethod.getResponseBodyAsString();
System.out.println("执行时长:" + (t - s) + "ms");
System.out.println("返回结果:" + JSONObject.parseObject(result));
postMethod.releaseConnection();
return result;
}

/**
* 无需认证的请求
*/
private String httpConnectionWithNoAuth(String url, String addr, String json) throws Exception {
System.out.println("请求参数:\r\n" + json);
System.out.println("请求地址:" + url + addr);
HttpClient client = new HttpClient();

long s = System.currentTimeMillis();
PostMethod postMethod = new PostMethod(url + addr);
postMethod.setRequestBody(json);
postMethod.addRequestHeader("Content-Type", "application/json;charset=UTF-8");
client.executeMethod(postMethod);
long t = System.currentTimeMillis();
String result = postMethod.getResponseBodyAsString();
System.out.println("执行时长:" + (t - s) + "ms");
System.out.println("返回结果:" + JSONObject.parseObject(result));
postMethod.releaseConnection();
return result;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: