Java发送get请求

jar包和上一篇的一样。

测试接口:http://www.ip138.com:8080/search.asp(一个查询号码归属地的)

 

代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

public class TestGet {
public static String httpGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
// 打开和URL之间的链接
URL realUrl = new URL(urlNameString);
URLConnection connection = realUrl.openConnection();
// 设置通用请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection
.setRequestProperty(
"user-agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
for (String key : map.keySet()) {
// 头字段-->值的方式打印
System.out.println(key + "--->" + map.get(key));
}
// 定义BufferedReader输入流来读取URL响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送get请求异常" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}

//验证响应请求是否有预期的结果

public void matchesRequest(String requestDate, String matchesContent) {
if (requestDate.contains(matchesContent)) {
System.out.println("包含 " + matchesContent + " 字段" + ",结果正确!");
} else {
System.out.println("不包含 " + matchesContent + " 字段" + ",结果错误!");
}

}

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String s = TestGet.httpGet("http://www.ip138.com:8080/search.asp",
"mobile=15888888888&action=mobile");
System.out.println(s);
new TestGet().matchesRequest(s, "云南");
}

}

posted @ 2015-12-14 16:02  Free-program  阅读(220)  评论(0)    收藏  举报
编辑推荐:
· C# 代码如何影响 CPU 缓存速度?
· 智能桌面机器人:使用 .NET 为树莓派开发 Wifi 配网功能
· C# 模式匹配全解:原理、用法与易错点
· 记一次SSD性能瓶颈排查之路——寿命与性能之间的取舍
· 理解 .NET 结构体字段的内存布局
阅读排行:
· 【故障公告】6月9日 17:24~17:34 再次遭遇攻击(晚上遭遇更疯狂的攻击)
· 3 个超火的开源项目「GitHub 热点速览」
· C#-Visual Studio工具使用实践
· 上周热点回顾(6.2-6.8)
· [原创]《C#高级GDI+实战:从零开发一个流程图》第01章:有什么用、有什么效果?
点击右上角即可分享
微信分享提示