使用Jfinal来测试一个接口非常方便,只需要发送一个post请求即可。最近跟踪源码,终于知道底层封装是怎么走的。
首先:
使用实例:
String result = HttpKit.post(url, "{'api': 'uac','action': 'getAccounts'}");
第一个参数是请求地址,第二个参数是拼装的json串。
先调用带四个参数的post方法。
public static String post(String url, String data) {
return post(url, null, data, null);
}
/**
* Send POST request
*/
public static String post(String url, Map<String, String> queryParas, String data, Map<String, String> headers) {
/**使用的是JDK自带的java.net.HttpURLConnection**/
HttpURLConnection conn = null;
try {
/**根据请求地址url和查询参数queryParas和请求头headers得到连接信息**/
conn = getHttpConnection(buildUrlWithQueryString(url, queryParas), POST, headers);
/**建立连接**/
conn.connect();
OutputStream out = conn.getOutputStream();
out.write(data != null ? data.getBytes(CHARSET) : null);
out.flush();
out.close();
/**根据连接返回响应字符串**/
return readResponseString(conn);
}
catch (Exception e) {
throw new RuntimeException(e);
}
finally {
/**关闭连接,也就是说发送一次post请求,连接用完之后会直接关闭**/
if (conn != null) {
conn.disconnect();
}
}
}
bui