2015-10-06 58 views
-1

我尝试从URL下载文件并将其保存在本地的java中。这个URL从我的浏览器工作,但在JAVA中,我得到了这些模糊:java.net.SocketException:连接重置。java.net.SocketException:使用SocketInputStream重置连接

java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(SocketInputStream.java:196) 
    at java.net.SocketInputStream.read(SocketInputStream.java:122) 
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) 
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:275) 
    at java.io.BufferedInputStream.read(BufferedInputStream.java:334) 
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:687) 
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633) 
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:658) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1323) 
    at java.net.URL.openStream(URL.java:1037) 

我试图与不同的实现:

阿帕奇普通IO

Files.copy(myUrl.openStream(), file, StandardCopyOption.REPLACE_EXISTING); 

泽西2

WebTarget target =ClientBuilder.newClient().target(myUri); 
Response response = target.path(ressourcePath).request().get(); 

的Java IO

URL link = new URL(myUri); 
InputStream in = new BufferedInputStream(link.openStream()); 

所有这些例子抛出一个java.net.SocketException异常:连接复位异常。

我无法控制发送文件的服务器。

+0

您可以添加您使用的URI吗? – Reinard

+1

您的浏览器是否可以通过代理连接? –

+0

可能重复[java.net.SocketException:连接重置](http://stackoverflow.com/questions/62929/java-net-socketexception-connection-reset) – Raedwald

回答

0
import java.net.*; 
import java.io.*; 

public class URLReader { 
    public static void main(String[] args) throws Exception { 
    URL oracle = new URL("http://www.oracle.com/"); 
    BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream())); 
    String inputLine; 
    while ((inputLine = in.readLine()) != null) 
     System.out.println(inputLine); 
    in.close(); 
    } 
} 
相关问题