package test.httpclient;
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory;
/**
* 基于https请求
* @author zsx
*
*/
public class HttpClientTest {
public static void main(String[] args) throws HttpException, IOException {
String content = "内容";
sslTest(content);
}
public static void sslTest(String content) throws HttpException, IOException {
//使用默认SSLProtocolSocketFactory
ProtocolSocketFactory psf = new SSLProtocolSocketFactory();
//设置https协议
Protocol myhttps = new Protocol("https", psf, 443);
HttpClient httpclient = new HttpClient();
//配置请求
httpclient.getHostConfiguration().setHost("host地址(如www.test.com)", 443, myhttps);
PostMethod httpPost = new PostMethod("调用地址(如/resource)");
try {
RequestEntity requestEntity = new StringRequestEntity(content, "application/json", "utf-8");
httpPost.setRequestEntity(requestEntity);
int status = httpclient.executeMethod(httpPost);
System.out.println(status);
String resp = httpPost.getResponseBodyAsString();
System.out.println(resp);
} finally {
httpPost.releaseConnection();
}
}
}