标签: http-proxy

URLConnection无法正确处理代理的内容长度

我遇到了以下问题:当URLConnection通过代理使用时,内容长度始终设置为-1.

首先,我检查了代理确实返回Content-Length(lynx并且wget也通过代理工作;没有其他方法从本地网络上网):

$ lynx -source -head ftp://ftp.wipo.int/pub/published_pct_sequences/publication/2003/1218/WO03_104476/WO2003-104476-001.zip
HTTP/1.1 200 OK
Last-Modified: Mon, 09 Jul 2007 17:02:37 GMT
Content-Type: application/x-zip-compressed
Content-Length: 30745
Connection: close
Date: Thu, 02 Feb 2012 17:18:52 GMT

$ wget -S -X HEAD ftp://ftp.wipo.int/pub/published_pct_sequences/publication/2003/1218/WO03_104476/WO2003-104476-001.zip
--2012-04-03 19:36:54--  ftp://ftp.wipo.int/pub/published_pct_sequences/publication/2003/1218/WO03_104476/WO2003-104476-001.zip
Resolving proxy... 10.10.0.12
Connecting to proxy|10.10.0.12|:8080... connected.
Proxy request sent, awaiting response...
  HTTP/1.1 200 OK
  Last-Modified: Mon, 09 Jul 2007 17:02:37 GMT
  Content-Type: application/x-zip-compressed
  Content-Length: 30745
  Connection: close
  Age: 0
  Date: …
Run Code Online (Sandbox Code Playgroud)

java proxy urlconnection http-proxy

5
推荐指数
1
解决办法
2369
查看次数

停止框架使用 HTTP 代理

在几乎淹没在沮丧的眼泪之后,我不得不问你一个问题。

我的 play(2.0.3,scala)应用程序正在使用 wsdl,如果我在localhost上运行我的 webservice 的开发版本,它运行得非常好,这使得 wsdl-url 类似于http://localhost:8080/Service/Service?wsdl. 当我尝试从远程测试系统服务器使用 WSDl 时,使用类似 的 URL http://testserver.company.net:8084/Service/Service?wsdl,我得到:

[WebServiceException: Failed to access the WSDL at: http://testserver.company.net:8084/Service/Service?wsdl. It failed with: Got Server returned HTTP response code: 502 for URL: http://testserver.company.net:8084/Service/Service?wsdl while opening stream from http://testserver.company.net:8084/Service/Service?wsdl.]

我的公司使用 http 代理用于 Internet 使用,这就是 502 错误的原因。所以我想播放停止使用代理。

到目前为止,我已经尝试过(一起):

  • 从 Internet Explorer 中删除的代理
  • 设置 _JAVA_OPTIONS=-Dhttp.noProxyHosts="testserver.company.net"
  • 设置 JAVA_OPTIONS=-Dhttp.noProxyHosts="testserver.company.net"
  • 播放运行 -Dhttp.noProxyHosts="testserver.company.net"

这些都没有奏效。有任何想法吗?如何停止使用 HttpProxy 播放?

编辑:

我发现它与 java Webservices-api / jaxws 库有关。有任何想法吗?

编辑 2012-10-17:

它似乎取决于系统代理设置。尽管我从 IE 中删除了整个代理并重新启动了所有内容,但我仍然不知道为什么那天它不起作用。有什么方法可以让我的播放应用程序独立于系统设置?

wsdl scala http-proxy playframework playframework-2.0

5
推荐指数
1
解决办法
737
查看次数

使用Node JS代理http并修改响应

我正在尝试用Node JS编写一个API服务的前端(我是一个相对初学者).

我希望能够让用户将他们的浏览器指向我的节点服务器并发出请求.节点脚本将修改请求的输入,调用api服务,然后修改输出并传递回用户.

我喜欢这里的解决方案(使用Express JS和node-http-proxy),因为它直接从用户通过我的站点将cookie和标题传递给api服务器.

node.js/express中的代理请求

我看到如何修改请求的输入,但我无法弄清楚如何修改响应.有什么建议?

api http-proxy node.js

5
推荐指数
2
解决办法
1万
查看次数

如何使用具有JSCH库的代理通过FTP文件

我想将文件ftp到一个远程位置,并且我一定要为此使用代理服务器。我可以通过以下命令连接到FTP位置:

 sftp -o "ProxyCommand /usr/bin/nc -X connect -x <proxy_host>:<proxy_port> %h %p" username@ftp_server:
Run Code Online (Sandbox Code Playgroud)

但是我想自动执行此文件传输过程,并且我将Jsch用于FTP,代码段如下:

    String sourceFile = sourceDir + fileName;
    JSch jsch = new JSch();
    int port = Integer.parseInt(getFtpPort());
    Session session = jsch.getSession(getUserName(), getHost(), port);
    session.setConfig(STRICT_HOST_CHECKING, ANSWER);
    session.setProxy(new ProxyHTTP(<proxy_host>, <proxy_port>));
    session.setPassword(getPassword());
        session.connect();
    Channel channel = session.openChannel(FILE_PROTOCOL);
    channel.connect();
    sftpChannel = (ChannelSftp) channel;
    sftpChannel.cd(desDir);
    File fileToTransfer =  new File(sourceFile);
    sftpChannel.put(new FileInputStream(fileToTransfer), fileName);
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我得到以下异常:

Caused by: com.jcraft.jsch.JSchException: ProxyHTTP: java.io.IOException
    at com.jcraft.jsch.ProxyHTTP.connect(ProxyHTTP.java:158)
    at com.jcraft.jsch.Session.connect(Session.java:210)
    at com.jcraft.jsch.Session.connect(Session.java:162)
Run Code Online (Sandbox Code Playgroud)

sftp jsch file-transfer http-proxy

5
推荐指数
3
解决办法
7276
查看次数

如何让 RESTEasy 使用系统 Web 代理?

我将 JAX-RS 用于 Java 8 中的 RESTful 客户端,RESTEasy 3.0.10.Final 作为 Windows 7 64 位上的实现。RESTEasy 反过来使用 Apache httpclient 4.2.6。

我单独学习了如何为 httpclient 手动指定 Web 代理,因此如果在我的代码中我ResteasyClientBuilder使用专门配置的手动配置 a ApacheHttpClient4Engine,我的 RESTEasy 客户端连接会正确使用代理。

我的问题是我想使用java.net.useSystemProxies系统属性,以便我的 Java 程序将使用在 Windows Internet 选项中配置的任何代理,以便我的 Java 程序可以与其他程序无缝协作,而不需要对其进行特殊配置。这适用于使用 Java 的原生 HTTP 连接的连接。但是 RESTEasy/Apache httpclient 显然打开了一个直接套接字并在低级别执行其 HTTP 通信。

当我告诉 Java 使用系统代理时,Java 确实将 httpclient 连接路由到代理。但出于某种原因,httpclient 认为它正在与 SOCKS 代理交谈——或者其他东西——并且请求超时:

java.net.SocketException: Can't connect to SOCKS proxy:Connection timed out: connect
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:429)
    at java.net.Socket.connect(Socket.java:589)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:127)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
    at …
Run Code Online (Sandbox Code Playgroud)

jax-rs http-proxy resteasy apache-httpclient-4.x

5
推荐指数
0
解决办法
1642
查看次数

如何使用简单的基于webview的Chrome自助服务终端应用程序来使用代理配置?

我创建了一个非常简单的基于webview的Chrome应用程序 - 它几乎与Google 使用文本编辑器创建一个简单的自助服务终端应用程序相同,但更简单的是它没有重置或任何其他按钮只是我的网页内容.

这在由策略或手动提供的大多数普通信息亭情况下都很有效,但是在实时环境中我需要部署此应用程序我是一个非常严格的防火墙,只有使用HTTP代理(Squid)才能访问Internet.在这种情况下,webview内容从不显示,应用程序似乎陷入初始化阶段.

我可以访问代理日志,并且可以看到使用代理永远不会请求webview的内容 - 对Google服务器的其他HTTPS请求似乎正常工作.通过部署网络嗅探器,我可以看到防火墙正在丢弃的直接请求正在尝试访问webview内容.

我想要的配置是使用自动机制在CrOS下配置代理,http://wpad/wpad.dat但我尝试手动配置,通过托管策略提供此配置,以及本地提供所有可能的组合,我的结果看起来都一样; 自助服务终端应用中的webview似乎忽略了系统配置的代理.

如果kiosk_enabled在受限制的环境中使用应用程序的Kiosk模式,则webview会正确选择已登录用户的代理设置.只有在适当的信息亭模式下,webview才会忽略代理设置.

我的研究似乎表明,webview不能通过API手动配置其代理,尽管似乎有一个Chromium问题(172285)要求这样做; 和其他自助服务终端应用程序在我的受限制环境中展示相同的问题,包括谷歌自己的Sign Builder应用程序.所以也许我正在尝试做的只是不可能(一个错误?)虽然我没有找到任何文件来暗示这一点.我真的希望有一些解决方法可以使webview与系统代理设置一起工作,并且有人阅读它知道并愿意分享它.

我已经成功实现了我自己的hacky解决方法,因为我可以完全控制代理,如果不是防火墙,它为我的kiosk应用程序的webview访问设置了一个反向代理配置,因此看来webview 不需要代理因为看起来该网站是防火墙局域网的本地.这不是一个非常通用的解决方案,我相信会有其他人没有这个选项.

提前感谢任何建议或反馈,
干杯
/丹

kiosk webview http-proxy kiosk-mode google-chrome-app

5
推荐指数
0
解决办法
590
查看次数

如何设置React Native Webview代理?

在本机Webview的反应中,我可以给它HTML离线呈现,但我也希望它能离线加载css和js文件,以及在离线时处理任何http流量.

到目前为止,我有几个想法:使用像https://github.com/remy/inliner这样的东西来使整个网站依赖免费,或者设置一个代理,看到一个http请求是从Webview内部做出的,然后处理它与反应本机代码.

为Webview设置代理的简单方法是什么?我找到了https://github.com/marcuswestin/WebViewProxy并且正在调查它,但是我真的想找到一些跨平台的东西并且已经与反应原生的桥接.

webview http-proxy react-native

5
推荐指数
0
解决办法
1090
查看次数

如何使用Kafka REST Proxy删除Kafka主题?

如何使用Kafka REST Proxy删除Kafka主题?我尝试了以下命令,但它返回错误消息:

curl -X DELETE XXX.XX.XXX.XX:9092/topics/test_topic
Run Code Online (Sandbox Code Playgroud)

如果不可能,那么如何更新删除消息并更新主题方案?

rest http-proxy apache-kafka jms-topic

5
推荐指数
1
解决办法
2638
查看次数

具有自定义Http(s)代理和Connect.js中间件的Node.js代理

我已经把在节点需要的能力超过TLS和所有的作品隧道HTTPS请求代理服务器.使用以下两个软件包非常容易设置:proxy,https-proxy-agent.我的问题是我正在尝试使用connect作为中间件层来捕获HAR文件,并且我收到以下错误:

_http_outgoing.js:357
throw new Error('Can\'t set headers after they are sent.');
^
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:357:11)
at ServerResponse.writeHead (_http_server.js:180:21)
at ClientRequest.<anonymous> (/.../node_modules/proxy/proxy.js:233:11)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:473:21)
at HTTPParser.parserOnHeadersComplete (_http_common.js:99:23)
at Socket.socketOnData (_http_client.js:362:20)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
Run Code Online (Sandbox Code Playgroud)

它就像下面一样简单,它似乎只发生在我通过本地浏览器使用连接和代理时(这个代理实际上与BrowserStackLocal一起使用).当我从本地机器浏览器以外的任何地方传递代理时,就好像它甚至不知道中间件存在.

所以基本上,我只需要在这种情况下让连接工作,我不确定我是否需要暂停一些东西和简历,或者什么......任何想法都会非常感激.基本代码如下:

const path = require('path');
const http = require('http');
const proxy = require('proxy');
const Agent = require('https-proxy-agent'); …
Run Code Online (Sandbox Code Playgroud)

connect http-proxy node.js har

5
推荐指数
1
解决办法
483
查看次数

HTTP代理错误状态代码

该应用程序是基于Node.js的Web爬网程序,它通过request库向远程服务器发出请求.

请求是通过经过身份验证的HTTP代理服务器进行的,其运行时间为99%,并且由第三方供应商提供.

我正在尝试处理HTTP代码以应对可能由代理故障引起的请求错误响应.预计在达到这些HTTP代码的阈值后,将触发代理不可靠的标志,因此代理将排队等待诊断.我希望一些代码能够有更多的重量.

目前我正在为代理处理407(代理身份验证)和408(请求超时)HTTP代码.

是否存在通常由HTTP代理故障引起的其他HTTP代码?

我希望这个问题足够具体.我假设可能的故障(以及一组可能的HTTP错误状态代码)取决于实际代理及其环境.我们应该考虑这些代理黑盒子,因为它们是由第三方提供的.

问题不在于一般的HTTP状态代码,只有错误代码可能由故障代理(转发代理)引起.

web-crawler http-status-codes http-proxy node.js node-request

5
推荐指数
1
解决办法
2382
查看次数