java代码通过HttpURLConnection发送请求获取手机在线网站的归属地信息时,数据是空的
http://www.showji.com/ 这个手机在线的网站,在网站上查的话是可以查到归属地信息,他网页源代码也看不到相关的归属地信息,我们不管是用Httpclient还是HttpUrlConnection 发送请求数据都是空的,有没有高手知道这是怎么一回事呢?
这是手机在线查询归属地后的网页源代码,里面也是空的 展开
public static String getMobilAdress(String mobile) throws Exception{
InputStream inputStream = MobileService.class.getClassLoader().getResourceAsStream("mobilesaop.xml");
byte[] data = ReadInputStram(inputStream);
String xml=new String(data);
String soap= xml.replaceAll("\\$mobile",mobile);
String path = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
data = soap.getBytes();
HttpURLConnection conn =(HttpURLConnection)new URL(path).openConnection();
conn.setReadTimeout(5000);
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/soap+xml; charset=utf-8");
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
OutputStream out = conn.getOutputStream();
out.write(data);
out.flush();
out.close();
if(conn.getResponseCode() ==200){
return parseXML(conn.getInputStream());
}
return null;
}
你用firebug查看是有的,数据应该是使用ajax设置上去的,所以你直接查看源代码肯定没有
这是用的什么浏览器? 火狐吗? 火狐可以看到。用IE和360都看不到
是火狐浏览器
所以你程序访问这个页面只能得到他空的没有数的页面,你可能需要找找他获取数据请求的url
找到了,他实际请求的是
"http://v.showji.com/locating/showji.com.aspx?m=11111111111&output=json&callback=querycallback×tamp=1412826381489"
这个地址,把m后面换成你要查的号码就可以了
返回值为
querycallback({"Mobile":"11111111111","QueryResult":"True","TO":"中国联通","Corp":"中国联通","Province":"北京","City":"北京","AreaCode":"010","PostCode":"100000","VNO":"","Card":""});
我用自己手机号测的,可以
2.你在仔细的调试看看吧。
3.不清楚你要做什么?
你这个不是通过手机在线查询的归属地信息吧, 我想用HttpURLConnection对手机在线(http://www.showji.com/search.htm?m=1376067)发送查询归属地的请求。 他们网站响应的数据归属地信息都为空。