2 mrluo93 MrLuo93 于 2017.08.31 14:07 提问

Java获取http请求返回json格式数据异常

java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
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.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at com.elan.webservers.HttpRequestUtil.getHttp(HttpRequestUtil.java:64)
at com.elan.webservers.HttpRequestUtil.main(HttpRequestUtil.java:19)

一直提示连接超时, 请问下有什么解决的方法么?

// 开始连接请求
conn.connect(); //这行为异常提示行

14个回答

mwb102919
mwb102919   2017.08.31 14:11
已采纳

将Socket超时时间改大一点就可以了

MrLuo93
MrLuo93 回复过客00: 这个网址有时间你去看看 http://square.github.io/okhttp/
11 个月之前 回复
MrLuo93
MrLuo93 因为用这种方式不支持并发 。 到时候我做的这个会在公司服务器一直跑所以换了种方式
11 个月之前 回复
MrLuo93
MrLuo93 回复过客00: 麻烦你了。 谢谢
11 个月之前 回复
mwb102919
mwb102919 回复MrLuo93: 我按你的参数,给返回{"status":0,"msg":"\u516c\u94a5\u9519\u8bef"}
11 个月之前 回复
mwb102919
mwb102919 回复MrLuo93: 我写过一个httpclient工具类,刚才加了一个测试类,你拿去用吧,http://pan.baidu.com/s/1qY3CV3Que35
11 个月之前 回复
mwb102919
mwb102919 回复MrLuo93: conn.setConnectTimeout(60000); 试试呢
11 个月之前 回复
MrLuo93
MrLuo93 源码在第二页, 麻烦帮我看看。谢谢
11 个月之前 回复
MrLuo93
MrLuo93 没用, 我试了
11 个月之前 回复
shaobo7705601
shaobo7705601   2017.08.31 14:23

确保网络是通的,url可请求到。如果确保可以访问到,调大时间

MrLuo93
MrLuo93 没用, 我试了。源码在第二页, 麻烦帮我看看。谢谢
11 个月之前 回复
playboyanta123
playboyanta123   2017.08.31 14:23

你这是文不对题,跟请求json有啥关系,你这是服务器请求超时了,一个是你调试好自己的网络,确保网络没毛病,在一个在网络请求的代码里把
超时时间设置为20秒以上,还有就是你要确保你要请求的服务器没毛病吧,看你上面说的估计大部分可能是服务器出错了,连不上了

MrLuo93
MrLuo93 源码在第二页, 麻烦帮我看看。谢谢
11 个月之前 回复
MrLuo93
MrLuo93   2017.08.31 14:25

网络没问题。 conn.setReadTimeout(3600000); // 设置超时时间为一小时 还是一样。

java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
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 java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at com.elan.webservers.HttpRequestUtil.getHttp(HttpRequestUtil.java:64)
at com.elan.webservers.HttpRequestUtil.main(HttpRequestUtil.java:19)

qq_21454973
qq_21454973   2017.08.31 14:27

请求的地址对了,那请求带的参数对了?

MrLuo93
MrLuo93 源码在第二页, 麻烦帮我看看。谢谢
11 个月之前 回复
qq_21454973
qq_21454973 回复MrLuo93: 可以先写的页面里面用个AJAX看 你请求的地址能不能请求到
11 个月之前 回复
MrLuo93
MrLuo93 这是我把所有参数注释掉后输出的:{}
11 个月之前 回复
MrLuo93
MrLuo93 如果是参数问题, 应该也不会是提示连接超时吧
11 个月之前 回复
vane11
vane11   2017.08.31 14:31

如果还没解决的话,最好说一下 大致问题发生的背景,单看报错不容易找到问题

MrLuo93
MrLuo93 源码在第二页, 麻烦帮我看看。谢谢
11 个月之前 回复
qq_28215471
qq_28215471   2017.08.31 14:37

你看下你请求的方式对不对,get请求去请求post方式的肯定是不行的。

MrLuo93
MrLuo93 回复qq_28215471: 源码在第二页,麻烦你帮忙看看。 谢谢
11 个月之前 回复
qq_28215471
qq_28215471 回复MrLuo93: 你的url检查看是不是拼对了
11 个月之前 回复
MrLuo93
MrLuo93 请求是对的, 那边也是用的post
11 个月之前 回复
zy841958835
zy841958835   Ds   Rxr 2017.08.31 14:43

贴下 请求的代码 用得什么框架啥的

MrLuo93
MrLuo93 源码在第二页, 麻烦帮我看看。谢谢
11 个月之前 回复
zhle321
zhle321   2017.08.31 15:03

服务器中断,或者请求路径url出错

MrLuo93
MrLuo93 源码在第二页, 麻烦帮我看看。谢谢
11 个月之前 回复
weixin_40045911
weixin_40045911   2017.08.31 15:16

路过.............

共14条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java 发送 json、xml格式的 http请求,并读取响应response内容实例
java 发送 json、xml格式的 http请求,需要确定接受请求的的服务器地址(ip、端口、具体的目录) 然后设置连接属性信息 请求的数据格式(json 或 xml) 根据需要是否要向服务器发送消息体(可以只发送http头,不发具体的信息),数据格式要与设置的http头信息设置的格式一致,如果想查看发送和服务器的响应的具体信息 可以使用 http抓包工具,如 httpAnalizer等
httpclient的post请求并处理json格式响应数据
HttpClient client = new HttpClient(); //HttpMethod method = postMethod("https://m.kuaidi100.com/query", expressCompany,expressNum); PostMethod post = new PostMethod("https://m.kuaidi
HttpPost Josn数据及服务端返回Json数据代码详解
最近在模拟post json数据到服务端,然后返回json信息,当然也要实现模拟服务端的代码,服务单可以用controller实现,但是发现一个问题,就是返回来的是个页面,页面中才包含返回的json数据,怎么取出去来了,网上博客一般写的都是客户端的post,后来猛然想到以前和老师学安卓的时候的有段代码就是把返回的json数据放在页面上,才发现可以用getWriter()把页面中的json数据单独打
java发起http请求获取返回的Json对象
第一个方法,发送get请求获取后台数据,其中,将返回回来的字符串解析成json对象用到了google的Gson.jar包,用到了其中JsonParser的parse方法。 第二个方法,发送post数据到后台并获取后台数据。
java 通过发送json,post请求,返回json数据
java 通过发送json,post请求,返回json数据
java 发起http请求并获取结果(json)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; import java.net.
http request 获取复杂json数据时出现异常解决额
昨天遇到一个很有意思的问题,今天写下来跟大家分享一下,瞬间加深自己的印象,不对的地方希望大家指出。 是这样的。 用java servlet写了一个url连接用于外部调用,在dopost()方法中获取获取传递过来的json格式参数,起初我使用的方法是 String para = request.getParameter("para"); 然后通过 System.out.println
http请求返回json对象。简单的接口处理
开发了一个独立查询存储的系统,需要被其他系统访问,记录一下方法 也许以后会用到。很简单的http请求和返回 package com.hz.contral; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import jav
使用Apache HttpClient发送和接收JSON格式的数据
JSON格式数据的优点:    A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小,是非常轻量级的数据格式;  B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;  C.支持多种语言,其中在Java端有丰富的工具操作和解析JSON;  D.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护;...
Java_HttpClient获取返回类型为JSON或XML的数据
HttpClient 获取返回类型为JSON或XML的数据 使用httpcomponents-client-4.1.3(下载页面:http://hc.apache.org/httpcomponents-client-ga/download.html 最新是5.20发布的4.2版本)向网页发送HTTP请求抓取数据。 我所调用的服务明确写了他们支持多种类型的返回结果,如下:  The conte