java网页版使用新浪微博api报错:unknownHostException:api.weibo.com

YAOHUIZHENG 2013-11-18 12:13:57
最近研究java版使用新浪微博APi, 各种东西都申请好了,token也在新浪微博的测试平台上面测试,没问题,但是新浪自带的JAVA SDK中的examples来发微博(myeclipse),就报错:(在授权认证的时候,也经常出现这样,要刷新很多次,才把code获取,然后弄了很久才将token获取,都是报这个错误!),求大神指导!(有人说要设置什么代理! 我新手,不懂,请指导!谢谢!)

weibo4j.model.WeiboException: api.weibo.com
at weibo4j.http.HttpClient.httpRequest(HttpClient.java:422)
at weibo4j.http.HttpClient.post(HttpClient.java:302)
at weibo4j.Oauth.getAccessTokenByCode(Oauth.java:90)
at weibo4j.examples.oauth2.OAuth4Code.main(OAuth4Code.java:21)
Caused by: java.net.UnknownHostException: api.weibo.com
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
at weibo4j.model.MySSLSocketFactory.createSocket(MySSLSocketFactory.java:88)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at weibo4j.http.HttpClient.httpRequest(HttpClient.java:396)
... 3 more
...全文
1042 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
YAOHUIZHENG 2013-11-21
  • 打赏
  • 举报
回复
问题已经解决:就是DNS的问题,如果有同学还是遇到这个问题的话,可以改改DNS服务器地址:(谷歌的)8.8.8.8,,,,,8.8.4.4
teemai 2013-11-18
  • 打赏
  • 举报
回复
是你本身的网络问题
YAOHUIZHENG 2013-11-18
  • 打赏
  • 举报
回复
引用 10 楼 rui888 的回复:
哦。那你得找原因了。你的ie 可以上网吧。如果可以上面的应该可以抓取到网页内容。不知道你们公司是否通过代理。如果代理的话需要加上上面的代理设置。主机都没连接上,你的新浪微博API 怎么调用?
好吧! 我在宿舍的,我也不知道他们用了代理没! 谢谢啦! 谢谢耐心解答!
tony4geek 2013-11-18
  • 打赏
  • 举报
回复
哦。那你得找原因了。你的ie 可以上网吧。如果可以上面的应该可以抓取到网页内容。不知道你们公司是否通过代理。如果代理的话需要加上上面的代理设置。主机都没连接上,你的新浪微博API 怎么调用?
YAOHUIZHENG 2013-11-18
  • 打赏
  • 举报
回复
引用 8 楼 rui888 的回复:
6楼的测试没有啊。估计你连接不上网络。
测了,我重新剪了个文件,然后运行六楼的代码! 没反应!
tony4geek 2013-11-18
  • 打赏
  • 举报
回复
6楼的测试没有啊。估计你连接不上网络。
YAOHUIZHENG 2013-11-18
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
String path="http://open.weibo.com/";
		  Parser parser=new Parser(path);
		  parser.setEncoding("utf-8");
		  NodeList list=parser.parse(null);
		  System.out.println("<---->");
		  System.out.println(list.toHtml());
		  System.out.println("<---->");
我测试了下。html解析 api.weibo.com 可以的。不是他那主机的问题。你测试下可以不需要 htmlparser.jar import org.htmlparser.Parser; import org.htmlparser.util.NodeList;
我试过了,打印不了! 运行没反应! 控制台一直是空白的!
tony4geek 2013-11-18
  • 打赏
  • 举报
回复
你java都连不上网络,你测试下,可以打印不
System.getProperties().setProperty("proxySet", "true");
//设置你的主机 
		System.getProperties().setProperty("http.proxyHost", "xxx");
//设置你的端口
		System.getProperties().setProperty("http.proxyPort", "xxx");
		StringBuilder json = new StringBuilder();
		try {
			URL oracle = new URL(url);
			HttpURLConnection yc = (HttpURLConnection) oracle.openConnection();
			yc.setDoOutput(true);
			yc.setRequestMethod("GET");
			BufferedReader in = new BufferedReader(new InputStreamReader(yc
					.getInputStream()));
			String inputLine = null;
			while ((inputLine = in.readLine()) != null) {
				json.append(inputLine);
			}
			in.close();
		} catch (MalformedURLException e) {
		} catch (IOException e) {
		}
		System.out.println(json.toString());
YAOHUIZHENG 2013-11-18
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
String path="http://open.weibo.com/";
		  Parser parser=new Parser(path);
		  parser.setEncoding("utf-8");
		  NodeList list=parser.parse(null);
		  System.out.println("<---->");
		  System.out.println(list.toHtml());
		  System.out.println("<---->");
我测试了下。html解析 api.weibo.com 可以的。不是他那主机的问题。你测试下可以不需要 htmlparser.jar import org.htmlparser.Parser; import org.htmlparser.util.NodeList;
对了,我这里用浏览器输入:api.weibo.com 也无法显示! 但是我问其他人,他们的可以跳转到:open.weibo.com!
YAOHUIZHENG 2013-11-18
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
String path="http://open.weibo.com/";
		  Parser parser=new Parser(path);
		  parser.setEncoding("utf-8");
		  NodeList list=parser.parse(null);
		  System.out.println("<---->");
		  System.out.println(list.toHtml());
		  System.out.println("<---->");
我测试了下。html解析 api.weibo.com 可以的。不是他那主机的问题。你测试下可以不需要 htmlparser.jar import org.htmlparser.Parser; import org.htmlparser.util.NodeList;
那用他自带SDK中的例子,也要加这些东西吗?我是用他自带的例子来试验!因为我第一次接触这种api,所以不太懂!
tony4geek 2013-11-18
  • 打赏
  • 举报
回复
String path="http://open.weibo.com/";
		  Parser parser=new Parser(path);
		  parser.setEncoding("utf-8");
		  NodeList list=parser.parse(null);
		  System.out.println("<---->");
		  System.out.println(list.toHtml());
		  System.out.println("<---->");
我测试了下。html解析 api.weibo.com 可以的。不是他那主机的问题。你测试下可以不需要 htmlparser.jar import org.htmlparser.Parser; import org.htmlparser.util.NodeList;
YAOHUIZHENG 2013-11-18
  • 打赏
  • 举报
回复
引用 1 楼 rui888 的回复:
你是通过代理上网的吗,如果是就要设置代理 。 System.getProperties().setProperty("proxySet", "true"); System.getProperties().setProperty("http.proxyHost", "xxx"); System.getProperties().setProperty("http.proxyPort", "xxx");
可是我浏览器上面没有设置代理! 代理那里没打钩!
tony4geek 2013-11-18
  • 打赏
  • 举报
回复
你是通过代理上网的吗,如果是就要设置代理 。 System.getProperties().setProperty("proxySet", "true"); System.getProperties().setProperty("http.proxyHost", "xxx"); System.getProperties().setProperty("http.proxyPort", "xxx");

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧