您的位置:首页 > 其它

Sina微博开放API代理设置

2013-11-06 19:44 239 查看
使用sina微博API时由于我这里上网是通过代理的,所以一直提示如下问题:
Caused by: java.net.SocketTimeoutException: connect timed out
我知道肯定是代理的问题,但刚接触sina API,实在无从下手,最后看到一篇博文,基本理清了问题症结。
 
sina API for Java 使用了httpclient连接,预留了设置代理的代码,但是他设置代理的代码调用了这句
 
client.getHostConfiguration().setProxy(proxyHost, proxyPort);
 
而在org.apache.commons.httpclient.HostConfiguration中源代码为
 
 public synchronized void setProxy(final String proxyHost, int proxyPort) {

        this.proxyHost = new ProxyHost(proxyHost, proxyPort); 

 }
 
在org.apache.commons.httpclient.ProxyHost中源代码为
 
 public ProxyHost(final String hostname, int port) {

        super(hostname, port, Protocol.getProtocol("http"));

 }
 
可以看出默认初始化为http协议,而在weibo4j.http.HttpClient
public HttpClient(int maxConPerHost, int conTimeOutMs, int soTimeOutMs, int maxSize)中有代码
 
Protocol myhttps = new Protocol("https", new MySSLSocketFactory(), 443);

Protocol.registerProtocol("https", myhttps);
 
表明这里设置了协议为https,所以我们要做的就是要么将上面这两句注释掉,默认使用http协议,要么在代理设置时设置协议为https。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sina 微博 开放api