【发布时间】:2015-04-15 15:46:57
【问题描述】:
我正在尝试执行以下操作(在 Java 中):
- 连接到一些代理服务器和一些http_url
但我遇到了一些错误,例如:
java.net.ConnectException: Connection timed out: connect...
或与HTTP响应码相关的错误:302, 400, FileNotFound, file server error等
在我所做的一些更改中,我什至得到了200 代码。
(当我只使用openConnection() =>(没有代理IP地址)。
这是我最好的运行轨迹。
我在 IDE Eclipse Luna 控制台的错误消息中包含所有类别的 : (Unknown Source)。
一些错误来自/或来自:.getInputStream()方法,我不知道是否有关于setDoInput()、setDoOutput、编码或其他:
有什么身体可以帮助我吗?
这是我的代码:
url = new URL(http_url);
HttpURLConnection conn;
try {
conn = (HttpURLConnection)url.openConnection(proxy);
conn.setRequestMethod("GET");
conn.setRequestProperty("User-Agent", USERAGENT);
conn.setUseCaches(false);
conn.setRequestProperty("Accept", "*/*");
conn.addRequestProperty("Referer", "http://www.google.com/");
conn.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");
conn.setRequestProperty("Accept-Language", "en-US,en;q=0.8");
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setRequestProperty("X-Requested-With", "XMLHttpRequest");
conn.setDoInput(true);
System.out.println("response msg " + conn.getResponseMessage() + " CODE");
System.out.println("errorStream msg " + conn.getErrorStream());
System.out.println("inputStream msg " + conn.getInputStream());
String header_date = conn.getHeaderField("Date");
System.out.println(" date es: " + header_date);
String line = null;
StringBuffer tmp = new StringBuffer();
System.out.println("the code is :" + conn.getResponseCode());
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
while ((line = in.readLine()) != null) {
tmp.append(line);
}
System.out.println("value line is: " + line +"& date is: " + header_date);
Scrape(String.valueOf(tmp)); // temp.toString()
in.close();
in = null;
url = null;
conn.disconnect();
conn = null;
} else {
System.out.println("something bad happened code <>200, debug from your server");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
【问题讨论】:
-
您应该明确地编辑您的问题并将其剥离,以便于阅读。还要剥离您的代码以准确显示您遇到的一个问题。我试图了解您的问题,但没有这样做...
-
谢谢 Jens 我知道文本很密集,但问题是 openConnection(proxy) 如果你不使用代理代码工作正常,如果你使用: System.setProperty("http.proxyHost", Host) ; System.setProperty("http.proxyPort", 端口);它也有效,问题是什么??????它是一个需要扩展/覆盖的抽象类吗??????
-
我已经阅读了有关 openConnection(proxy) 的 StackOverflow 问题,并且看到有很多人遇到了同样的问题。我没有注意到 Java 中关于 openConnection() 方法的代理问题的主要错误。
-
查看此链接以了解相同的 openConnection(代理)问题:postseek.com/meta/df0bd802cfb7788ee9c17834075ac94b 感谢您的帮助。
-
好吧,只要你确认你的文本是密集的,但不要改变任何东西,它不会变得更好。你的问题难以理解。您是否在需要连接的公司代理背后?如果是这样,你怎么能得到
200的返回码?真的,您的问题是“一团糟”。我不太明白你的情况和你的要求。
标签: java eclipse windows scraper