Java 无法使用公司代理后的Jsoup连接到网站
我想使用javasjsoup库刮取一个网页,但是我在一个公司代理的后面,这个代理阻止我连接到这个网页。我研究了这个问题,现在知道我必须明确地解决代理问题,并向代理表明我的身份。但是我仍然无法连接到该网页。我试图通过使用以下代码从www.google.com检索标题来测试我的连接:Java 无法使用公司代理后的Jsoup连接到网站,java,html,proxy,jsoup,Java,Html,Proxy,Jsoup,我想使用javasjsoup库刮取一个网页,但是我在一个公司代理的后面,这个代理阻止我连接到这个网页。我研究了这个问题,现在知道我必须明确地解决代理问题,并向代理表明我的身份。但是我仍然无法连接到该网页。我试图通过使用以下代码从www.google.com检索标题来测试我的连接: import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class Test {
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class Test {
public static void main(String[] args) {
System.out.println("1");
try{
System.setProperty("http.proxyHost", "myProxy");
System.setProperty("http.proxyPort", "myPort");
System.setProperty("http.proxyUser", "myUser");
System.setProperty("http.proxyPassword", "myPassword");
Document doc = Jsoup.connect("http://google.com").get();
String title = doc.title();
System.out.println(title);
}catch(IOException e){
System.out.println(e);
}
}
}
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class DemoII {
public static void main(String[] args) {
System.out.println("1");
try{
System.setProperty("http.proxyHost", "myProxy");
System.setProperty("http.proxyPort", "myPort");
System.setProperty("http.proxyUser", "myUser");
System.setProperty("http.proxyPassword", "myPassword");
String script = Jsoup.connect("http://google.com").ignoreContentType(true).execute().body();
System.out.println(script);
}catch(IOException e){
System.out.println(e);
}
}
}
上述代码返回以下错误:
org.jsoup.UnsupportedAdminType异常:未处理的内容类型。必须是text/*、application/xml或application/xhtml+xml。Mimetype=application/x-ns-proxy-autoconfig,URL=
这告诉我soemthing已被检索,但属于无法处理的内容类型,因此我调整了测试以忽略该内容类型,以便使用以下代码查看检索到的内容:
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class Test {
public static void main(String[] args) {
System.out.println("1");
try{
System.setProperty("http.proxyHost", "myProxy");
System.setProperty("http.proxyPort", "myPort");
System.setProperty("http.proxyUser", "myUser");
System.setProperty("http.proxyPassword", "myPassword");
Document doc = Jsoup.connect("http://google.com").get();
String title = doc.title();
System.out.println(title);
}catch(IOException e){
System.out.println(e);
}
}
}
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class DemoII {
public static void main(String[] args) {
System.out.println("1");
try{
System.setProperty("http.proxyHost", "myProxy");
System.setProperty("http.proxyPort", "myPort");
System.setProperty("http.proxyUser", "myUser");
System.setProperty("http.proxyPassword", "myPassword");
String script = Jsoup.connect("http://google.com").ignoreContentType(true).execute().body();
System.out.println(script);
}catch(IOException e){
System.out.println(e);
}
}
}
事实证明,脚本字符串从代理服务器检索源代码。因此,我正在与代理建立一些连接,但我对www.google.com的请求没有通过。你知道我做错了什么吗?OP找到了一个解决方案:
嘿,谢谢,我不知道这个文件做了什么,在你告诉我它做了什么之后,我看了看里面,有一个代理名称与我以前使用的名称略有不同,现在它可以工作了-谢谢-
代理的回复是什么?对不起,由于公司政策,我无法发布源代码。一般来说,我得到了定义代理如何操作的java代码。为什么是java代码?会不会是它返回了一个错误?我相信屏蔽机密信息不会有问题,对吗?Document doc=Jsoup.co是什么nnecthttp://google.com.ignoreContentTypetrue.get; 屈服?@MCL是的,在我看来你是对的,我得到了一个代理自动配置。