有没有人试图在公司代理中使用vertx bi?我已经尝试了任何可能的方法来向vertx提供代理信息。到目前为止没有任何作用。
设置环境变量http_proxy = http://mycorporate.proxy.com:8080 - 没有运气
设置环境变量VERTX_OPTS =' - Dhttp.proxyHost = mycorporate.proxy.com -Dhttp.proxyPort = 8080' - 没有运气
设置环境变量 http.proxyHost = mycorporate.proxy.com 把http.proxyPort = 8080 没有运气
在vertx命令中注入额外的echo我可以看到代理相关的参数正在被正确传递给JVM但是仍然无法下载所需的模块(“vertx run hello.js”显然只是试图下载io.vertx~lang -rhino〜2.0.0-最终)
代理本身就可以了 - 我正在使用它,对于maven,sbt和其他需要代理的不同东西都没有问题 从家里使用的同一台笔记本电脑可以通过下载io.vertx~lang-rhino~2.0.0-final(第一次运行)成功运行“vertx run hello.js”
我刚开始根据公司的需求评估vertx,这是我第一个阻碍我进一步做出决定的窒息点。到目前为止,我必须按照以下步骤进行解决:1从家中运行并获取sys-mods中所需的任何模块。 2返回办公室时,手动将模块上载到测试服务器上的sys-mods。 显然,这不是运行任何东西的正常方式。
答案 0 :(得分:0)
要设置代理,请编辑vertx.bat(如果您在Windows上)并添加
set JVM_OPTS=-Dhttp.proxyHost=xxxx -Dhttp.proxyPort=xxxx
答案 1 :(得分:0)
我有类似的问题。我发现HttpClient表单不会从JVM_OPTS读取设置。 所以解决方案如下:
编辑你的vertx.bat(sh)
set JVM_OPTS=-Dhttp.proxyHost=xxxx -Dhttp.proxyPort=xxxx
然后在与httpClient相关的代码中试试这样的
HttpClient client = vertx.createHttpClient();
String proxyHost = System.getProperty("http.proxyHost", "none");
Integer proxyPort = Integer.valueOf(System.getProperty("http.proxyPort", "80"));
if(!"none".equalsIgnoreCase(proxyHost)){
client.setHost(proxyHost);
client.setPort(proxyPort);
}
以及后来的代码发送到HTTP请求
MultiMap map = new CaseInsensitiveMultiMap();
map.add("Host", domainName); //get domain of REQUESTED_URL
client.getNow(REQUESTED_URL, map, new new Handler<HttpClientResponse>(){...});
答案 2 :(得分:0)
以@ kamyk-pl答案为基础。如果您使用的是最新版本的Vertx,则可以执行以下操作:
WebClientOptions webClientOptions = new WebClientOptions();
String proxyHost = System.getProperty("http.proxyHost", "none");
Integer proxyPort = Integer.valueOf(System.getProperty("http.proxyPort", "80"));
if(!"none".equalsIgnoreCase(proxyHost)){
ProxyOptions proxyOptions = new ProxyOptions();
proxyOptions.setHost(proxyHost);
proxyOptions.setPort(proxyPort);
webClientOptions.setProxyOptions(proxyOptions);
}
WebClient.create(vertx, webClientOptions)
如果您正在测试SSL连接,也可以选择添加它
webClientOptions.setVerifyHost(false);
webClientOptions.setTrustAll(true);
答案 3 :(得分:0)
我使用vertx 3.8.0
HttpClient c = vertx.createHttpClient();
RequestOptions requestOptions = new RequestOptions();
requestOptions.setHost(ip).setPort(port).setURI("http://httpbin.org/ip");
c.request(HttpMethod.GET, requestOptions).handler(new Handler<HttpClientResponse>() {
@Override
public void handle(HttpClientResponse event) {
event.handler(new Handler<Buffer>() {
@Override
public void handle(Buffer event) {
System.out.println(event);
}
});
}
}).end();