首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在代理后面使用Apache Olingo

如何在代理后面使用Apache Olingo
EN

Stack Overflow用户
提问于 2017-01-12 15:24:22
回答 3查看 1K关注 0票数 3

我可以使用不同的浏览器成功地访问以下OData服务,也可以使用邮递员,即使是在代理之后:String SERVICE_ROOT = http://services.odata.org/V4/TripPinService/

但是,在Java中使用Apache Olingo,我无法访问该服务。

JVM参数(如-Dhttp.proxySet=true -Dhttp.proxyHost=http-proxy.example.com -Dhttp.proxyPort=8080 )允许我执行基本的URL函数,比如检索HTTP代码(GoogleReports200)。然而,使用ODataClient访问OData是不可能的(下面的代码)。不会抛出错误。

代码语言:javascript
复制
ODataClient client = ODataClientFactory.getClient();
ODataServiceDocumentRequest request = client.getRetrieveRequestFactory().getServiceDocumentRequest(SERVICE_ROOT);
ODataRetrieveResponse<ClientServiceDocument> response = request.execute();

我尝试在Olingo中使用代理功能,但没有成功:

代码语言:javascript
复制
client.getConfiguration().setHttpClientFactory(new ProxyWrappingHttpClientFactory(URI.create("http://http-proxy.example.com:8080")));

我做错了什么,我还有什么选择?

非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-13 21:21:07

如果您在NTLM代理后面,可以尝试使用NTLMAuthHttpClientFactory。

代码语言:javascript
复制
NTLMAuthHttpClientFactory ntlm = new NTLMAuthHttpClientFactory(username, password, workstation, domain);
client.getConfiguration().setHttpClientFactory(ntlm);

如果这不起作用,您可以尝试使用cntlm。安装它,在C:\Program Files (x86)\Cntlm\cntlm.ini中更改用户名、密码、域和代理,然后调用net start cntlm。把这个用于Olingo:

代码语言:javascript
复制
client.getConfiguration().setHttpClientFactory(new ProxyWrappingHttpClientFactory(URI.create("http://localhost:3128")));
票数 1
EN

Stack Overflow用户

发布于 2018-10-12 11:44:23

代码语言:javascript
复制
URI uri;
String scheme = "http";
        try {
            uri = new URI  (scheme,null,host,port,null,null,null);


        } catch (URISyntaxException e) {
            throw(e);
        }
        HttpClientFactory clientProxy = new ProxyWrappingHttpClientFactory(uri,userName,password );

        client.getConfiguration().setHttpClientFactory(clientProxy);
票数 1
EN

Stack Overflow用户

发布于 2017-01-23 14:35:21

我自己解决了这个问题。在VM参数中,我现在只有

代码语言:javascript
复制
-Djava.net.preferIPv4Stack=true

此外,我只在应用程序中定义了代理配置:

代码语言:javascript
复制
    client = ODataClientFactory.getClient();
    client.getConfiguration().setHttpClientFactory(
            new ProxyWrappingHttpClientFactory(URI.create("http-prox.example.com:8080")));

这对我有用。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41616887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档