我正在Java项目中使用Maven使用Any23库,并且我想配置代理服务器设置。 在Any23的配置website中,没有代理服务器设置。 我正在按照教程here进行数据提取,这是我拥有的代码:
Any23 runner = new Any23();
runner.setHTTPUserAgent("test-user-agent");
DocumentSource source = null;
try {
httpClient = runner.getHTTPClient();
source = new HTTPDocumentSource(httpClient,
"https://www.google.com/");
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
TripleHandler handler = new NTriplesWriter(out);
String n3="Empty Result!";
try {
runner.extract(source, handler);
handler.close();
n3 = out.toString("UTF-8");
}
catch (IOException | ExtractionException | TripleHandlerException e) {
e.printStackTrace();
}
在行runner.extract(source, handler);
中,Any23正在调用Apache Commons库来创建HTTP连接,但是它将空配置(没有代理主机和端口)传递给Apache Commons HTTPClient类的构造函数。我不想更改Any23的源代码(显然),并且我找不到找到将代理配置提供给Any23的方法。
我使用其他库,这些库通过环境变量来利用我的代理服务器设置,并通过以下几行进行设置:
System.setProperty("https.proxyHost", configurations.getProperty("PROXY_HOST"));
System.setProperty("https.proxyPort", configurations.getProperty("PROXY_PORT"));
System.setProperty("http.proxyHost", configurations.getProperty("PROXY_HOST"));
System.setProperty("http.proxyPort", configurations.getProperty("PROXY_PORT"));
谢谢。