package li.http;
import java.net.Authenticator;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.Proxy.Type;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import li.util.Convert;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Test;
public class TestHttp {
public static void main(String[] args) {
Integer times = 1000;
Long start = System.currentTimeMillis();
for (int i = 0; i < times; i++) {
Request request = new Request();
request.setUrl("http://localhost:8080/li_osc/performance_test_action.htm");
request.execute();
}
System.out.println("################## 运行 " + times + " 次 耗时 " + (System.currentTimeMillis() - start) + " 毫秒");
}
@Test
public void test() {
System.out.println(new Request().setUrl("http://localhost:8080/site_analysis/view.htm?_token=" + "1106y5npjy6gb" + "&a=1&b=2&c=3").execute().getBody());
System.out.println(new Request().setUrl("http://localhost:8080/site_analysis/view.htm?_token=" + "1106y5npjy6gb" + "&a=1&b=2&c=3").setMethod(Request.POST).execute().getBody());
}
@Test
public void testCookie() {
Request request = new Request();
request.setUrl("g.cn");
Response response = request.execute();
System.out.println("body = " + response.getCookies());
}
@Test
public void testHttpNotStringArgs() {
Request request = new Request();
request.setUrl("g.cn");
request.setParameters(Convert.toMap(1, 2, 3, 4));
Response response = request.execute();
System.out.println(response.getBody());
}
/**
* @Before
*/
public void before() {
System.setProperty("http.proxyHost", "208.110.94.187");
System.setProperty("http.proxyPort", "8089");
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", "password".toCharArray());
}
});
System.setProperty("sun.net.client.defaultConnectTimeout", "50000");
System.setProperty("sun.net.client.defaultReadTimeout", "50000");
}
@Test
public void testUrlPreFix() {
Request request = new Request();
request.setUrl("t.cn");
Response response = request.execute();
System.out.println(response.getBody());
}
@Test
public void localSiteUpload() throws MalformedURLException {
Request request = new Request();
request.setUrl("http://localhost:8080/webqq/upload.do");
request.setField("file_input_name_1", new URL("http://www.qqtouxiang888.com/uploads/allimg/100917/1J25HD0-15.gif"));
request.setField("file_input_name_2", new URL("http://img2.duitang.com/uploads/item/201210/02/20121002233322_45svm.gif"));
request.setField("text_input_name_1", "床前明月光");
request.setField("text_input_name_2", "疑是地上霜");
request.setField("text_input_name_3", "举头望明月");
request.setField("text_input_name_4", "低头思故乡");
request.execute();
}
/**
* 代理访问测试
*/
@Test
public void testProxy() {
List<Proxy> proxies = Arrays.asList(null, //
Proxy.NO_PROXY, //
new Proxy(Type.HTTP, new InetSocketAddress("208.110.94.187", 8089)),//
new Proxy(Type.HTTP, new InetSocketAddress("113.28.244.195", 3128)),//
new Proxy(Type.HTTP, new InetSocketAddress("190.122.185.195", 8080)),//
new Proxy(Type.HTTP, new InetSocketAddress("118.97.243.2", 3128)),//
new Proxy(Type.HTTP, new InetSocketAddress("202.171.253.111", 80)),//
new Proxy(Type.HTTP, new InetSocketAddress("42.96.141.69", 8081)),//
new Proxy(Type.HTTP, new InetSocketAddress("42.96.169.181", 81)),//
new Proxy(Type.HTTP, new InetSocketAddress("58.53.192.218", 8123)),//
new Proxy(Type.HTTP, new InetSocketAddress("58.210.247.18", 1337)),//
new Proxy(Type.HTTP, new InetSocketAddress(" 58.213.157.68", 1080))//
);
for (Proxy proxy : proxies) {
Request request = new Request();
request.setUrl("http://www.baidu.com/s");
request.setParameter("wd", "ip");
request.setProxy(proxy);
try {
Response response = request.execute();
Document document = Jsoup.parse(response.getBody());
System.out.println("SUCCESS " + document.select("p.op_ip_detail").text());
} catch (Exception e) {
System.out.println("ERROR " + proxy + "\t" + e);
}
}
}
/**
* 腾讯微博接口调用
*/
@Test
public void tencentWeibo() throws Exception {
Request request = new Request();
request.setUrl("https://open.t.qq.com/api/t/add_pic");
request.setField("format", "json");
request.setField("content", "你好 二 " + UUID.randomUUID());
request.setField("clientip", "182.150.167.194");
request.setField("longitude", "104.0683043");
request.setField("latitude", "30.8176374");
request.setField("pic", new URL("http://img2.duitang.com/uploads/item/201210/02/20121002233322_45svm.gif"));
request.setField("oauth_consumer_key", "801329627");
request.setField("access_token", "5a61e495941e2f17088df3b9374aea1a");
request.setField("openid", "161EAD0091E60F2A82A7FF7A97BDA1E5");
request.setField("oauth_version", "2.a");
request.setField("scope", "all");
Response response = request.execute();
System.out.println(response.getStatus());
System.out.println(response.getBody());
}
/**
* 新浪微博接口调用
*/
@Test
public void sinaWeibo() throws Exception {
Request request = new Request();
request.setUrl("https://api.weibo.com/2/statuses/upload.json");
request.setField("access_token", "2.003rRhwBbj3kJBdea73825c41QOvJD");
request.setField("status", "你好 二 " + UUID.randomUUID());
request.setField("pic", new URL("http://img2.duitang.com/uploads/item/201210/02/20121002233322_45svm.gif"));
request.setField("lat", "30.8176374");
request.setField("long", "104.0683043");
Response response = request.execute();
System.out.println(response.getStatus());
System.out.println(response.getBody());
}
/**
* 人人网开放平台
*/
@Test
public void renren() {
Request request = new Request();
request.setUrl("qq.com");
Response response = request.execute();
System.out.println(response.getStatus());
System.out.println(response.getBody());
}
/**
* nutz.cn 短地址生成
*/
@Test
public void nutzCreateUrl() {
for (int i = 0; i < 9999; i++) {
Request request = new Request();
request.setUrl("http://nutz.cn/api/create/url");
request.setHeader("hello", "you");
request.setContentType(Request.FORM_URLENCODED);
request.setField("data", "http://nutz.cn/hello");
Response response = request.execute();
System.out.println(response.getBody());
}
}
/**
* nutz.cn 短地址生成
*/
@Test
public void nutzCreateTxt() {
for (int i = 0; i < 9999; i++) {
Request request = new Request() {
protected byte[] getData() throws Exception {
return "床前明月光".getBytes();
}
};
request.setUrl("http://nutz.cn/api/create/txt");
request.setMethod(Request.POST);
request.setHeader("hello", "you");
request.setContentType(Request.FORM_URLENCODED);
Response response = request.execute();
System.out.println(response.getBody());
}
}
/**
* nutz.cn 短地址生成
*/
@Test
public void nutzCreateFile() {
for (int i = 0; i < 9999; i++) {
Request request = new Request();
request.setUrl("http://nutz.cn/api/create/url");
request.setHeader("hello", "you");
request.setContentType(Request.FORM_URLENCODED);
request.setField("data", "http://nutz.cn/hello");
Response response = request.execute();
System.out.println(response.getBody());
}
}
}