本人现做个项目,遇到点需求变化:
本来,我们是用URL直接链接到目的地址,现在客户更改需求,考虑到主机有多个IP,需要能自己设定IP去链接目的地址,HttpURLConnection不管用了,好像没有定制底层socket的方法
现在还有种方法,就是自己写socket去发送请求,这就需要自己组装http报名去发送,还有这个socket构造方法可以绑定主机IP socket Socket(InetAddress address, int port, InetAddress localAddr,int localPort),但是里面的2个端口怎么设定呢,比如说我的目的地址是“wap.baidu.com”.
我捣鼓了一下,怎么老是"得到服务端回应数据,数据长度为0。返回null",是不是报文格式错了?感觉没错啊,大家看看 /**
* 包装http头
*
* @param strSend
* @return
*/
private String getHttpHead() {
StringBuffer header = new StringBuffer(); header.append("GET /s?word=周杰伦&ssid=anonymous&bd_page_type=0&st=111040&uid=wap_1226494948_165&vit=tj&wtn=wswml&from=0"
+ " HTTP/1.1\r\n");
header.append(" Accept: */*\r\n");
header.append(" Accept-Language: zh-cn\r\n");
header.append(" User-Agent:Mozilla/4.04[en](Win95;I;Nav)\r\n");
header.append(" Host:wap.baidu.com\r\n");
header.append(" Connection: Keep-Alive\r\n");
header.append(" Content-type: text/xml\r\n");
header.append(" \r\n");
return header.toString();
}
还有,大家有没有更好的更简单的针对主机多IP指定链接网站的方法?
有啥组件,或是开源项目可以用的?
先谢谢大家啊~~~
本来,我们是用URL直接链接到目的地址,现在客户更改需求,考虑到主机有多个IP,需要能自己设定IP去链接目的地址,HttpURLConnection不管用了,好像没有定制底层socket的方法
现在还有种方法,就是自己写socket去发送请求,这就需要自己组装http报名去发送,还有这个socket构造方法可以绑定主机IP socket Socket(InetAddress address, int port, InetAddress localAddr,int localPort),但是里面的2个端口怎么设定呢,比如说我的目的地址是“wap.baidu.com”.
我捣鼓了一下,怎么老是"得到服务端回应数据,数据长度为0。返回null",是不是报文格式错了?感觉没错啊,大家看看 /**
* 包装http头
*
* @param strSend
* @return
*/
private String getHttpHead() {
StringBuffer header = new StringBuffer(); header.append("GET /s?word=周杰伦&ssid=anonymous&bd_page_type=0&st=111040&uid=wap_1226494948_165&vit=tj&wtn=wswml&from=0"
+ " HTTP/1.1\r\n");
header.append(" Accept: */*\r\n");
header.append(" Accept-Language: zh-cn\r\n");
header.append(" User-Agent:Mozilla/4.04[en](Win95;I;Nav)\r\n");
header.append(" Host:wap.baidu.com\r\n");
header.append(" Connection: Keep-Alive\r\n");
header.append(" Content-type: text/xml\r\n");
header.append(" \r\n");
return header.toString();
}
还有,大家有没有更好的更简单的针对主机多IP指定链接网站的方法?
有啥组件,或是开源项目可以用的?
先谢谢大家啊~~~
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货