标签: http-proxy

强制cURL在HTTPs请求的代理上使用GET

我正在尝试在我的本地计算机上使用转发代理服务器(Apache Traffic Server或Squid)作为我的cURL调用的本地HTTP缓存.

我使用以下方法设置了代理:

curl_setopt($ch, CURLOPT_PROXY, 'http://localhost:8080');
Run Code Online (Sandbox Code Playgroud)

当我查询HTTP网站时,cURL执行标准HTTP GET代理请求,可以正确缓存:

GET http://example.com/ HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

但是,在查询HTTPs网站时,cURL执行CONNECT代替,有效地使用代理作为TCP隧道,并阻止它缓存响应:

CONNECT example.com:80 HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

有没有办法迫使cURL GET甚至为HTTPs网站执行请求?

我可以理解在HTTP代理上使用TCP隧道进行HTTP隧道安全性的基本原理,但由于我的代理服务器在localhost上,我不关心使用不安全的HTTP连接到代理,并希望cURL执行GET请求:

GET https://example.com/ HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

我试过用:

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何事情.

php curl http-proxy

10
推荐指数
1
解决办法
1647
查看次数

如何将.NET WebSocket客户端与NTLM代理一起使用?

我的目标是使用WebSocket .Net客户端实现(即不是浏览器)通过需要NTLM身份验证的公司代理连接到WebSocket.到目前为止,所有的解决方案(例如websocket-sharp-with-proxy,websocket4net)都很简短.

我试过这些:

如何使用WebSocket4Net库代理

/sf/answers/181113131/

据我所知,作者尚未更新有关添加NTLM代理支持的讨论.http://websocket4net.codeplex.com/discussions/448172

这个问题试图问为什么客户端实现不支持代理,但它没有得到回答,并没有说明为什么没有人想要解决这个问题.

回到我的问题,如何在NTLM代理后面的客户端应用程序中使用WebSocket技术?

.net ntlm http-proxy websocket c#-4.0

10
推荐指数
1
解决办法
2030
查看次数

Node-http-proxy动态路由表?

即时为http-proxy使用以下代码:

var httpProxy = require('http-proxy');

var options = {
    router: {
    'url1.com': '127.0.0.1:3000',
    'url2.com': '127.0.0.1:3001'
    }
};

httpProxy.createServer(options).listen(80);
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以动态更新路由表吗?没有关闭代理服务器?

谢谢答案

http-proxy node.js

9
推荐指数
1
解决办法
2671
查看次数

如何从charles网络实用程序中获取上传的文件

我想保存并从mac网络上的Charles网络实用程序记录的多部分http上传中提取文件部分.有没有办法做到这一点?例如,我可以在请求文本中看到jpeg文件内容,但如果我尝试将其复制并粘贴到文件中,则它是无效文件.我只想将捕获的文件保存到磁盘.

http-proxy charles-proxy

9
推荐指数
1
解决办法
1223
查看次数

如何在Windows 7中使用代理后面的sbt?

我试图SBTWindows 7上运行.为此,我按照类似线程" 如何从代理后面使用sbt? "中的步骤进行操作.

我有以下相关的"系统变量":

变量名称: JAVA_OPTS 变量值: -Dhttp.proxySet=true -Dhttp.proxyHost=192.168.0.150 -Dhttp.proxyPort=8080

变量名称: SBT_OPTS 变量值: -Dhttp.proxySet=true -Dhttp.proxyHost=192.168.0.150 -Dhttp.proxyPort=8080

变量名称: SBT_HOME 变量值: C:\Program Files (x86)\sbt\

我也改变了内容 C:\Program Files (x86)\sbt\conf\sbtconfig.txt

*****sbtconfig.txt开始*****

*将java args设置为高

-Xmx512M

-XX:MaxPermSize参数=256米

-XX:ReservedCodeCacheSize =128米

*设置额外的SBT选项

-Dsbt.log.format =真

*设置代理

-Dhttp.proxySet =真

-Dhttp.proxyHost = 192.168.0.150

-Dhttp.proxyPort = 8080

*****sbtconfig.txt结束*****

cmd.exe我输入sbt.cmd回声

获取org.fusesource.jansi jansi 1.11 ....

大约1分钟后,我收到很多警告和错误,如:

[...]

::::错误服务器访问错误:连接超时:connect url = https://repo.typesafe.com/typesafe/ivy-releases/org.fusesource.jansi/jansi/1.11.ivys/ivy.xml

[...]

这与我没有代理设置完全相同.当我在浏览器中输入上述地址时,我感到很惊讶,我得到的是:

*****浏览器显示BEGINNING*****

{

"错误":[{

"身份":404,

"消息":"找不到文件."

}]

}

*****浏览器显示END*****

如何判断SBT是否尝试使用代理,还是存在其他问题?

http-proxy windows-7 sbt

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

在Java 8 JAX-RS RESTEasy客户端上使用Web代理

我似乎无法让JAX-RS客户端在Java 8上使用Web代理.我正在使用RESTEasy 3.0.10.Final,并在Windows 7 Professional 64位上运行Eclipse 4.4.2.

我在localhost运行时设置了一个FreeProxy服务器192.168.1.123:3128.我打开登录并telnet到192.168.1.123 3128并发出手册GET.请求显示在日志中.

然后我启动我的Java应用程序,设置http.proxyHost=192.168.1.123http.proxyPort=3128系统属性.(我甚至-D在启动JVM时尝试使用它.)(注意,我不希望localhost问题发挥作用,因为我连接到实际的IP地址,而不是localhost.)

我使用ClientBuilder.newBuilder().build()并执行GET资源创建JAX-RS客户端.FreeProxy日志中没有显示任何内容.

为了让JAX-RS客户端使用代理,我该怎么办?

eclipse jax-rs http-proxy resteasy

9
推荐指数
2
解决办法
5323
查看次数

代理配置无法使用角度CLI

8080 - 托管后端的端口4200 - 我的Angular2前端

在My Angular2项目中,我有文件proxy.config.json,内容如下

{
  "/api": {
  "target": "http://localhost:8080",
  "secure": false,
  "changeOrigin": "true",
  "pathRewrite": {"^/api": ""}
 }
}
Run Code Online (Sandbox Code Playgroud)

在Angular2 package.json中,我将启动过程更改为"start": "ng serve --proxy-config proxy.config.json" 当我在命令器中输入时,npm start然后在开始时我可以看到代理创建:/ api - > http:// localhost:8080.好吧,到目前为止我觉得很好.

我正在尝试发送请求(Angular2)

  constructor(private http: Http) {
    this.getUsers();
  }

  getUsers(): any {
    return this.http.get("/api/getusers")
      .subscribe(response => {
        console.log(response);
      })
  }
Run Code Online (Sandbox Code Playgroud)

我收到一个错误http:// localhost:4200/api/getusers 404(Not Found).我们可以看到,没有任何代理.为什么?我做错什么了吗?

visual studio代码的控制台输出是

 10% building modules 2/2 modules 0 active[HPM] Proxy created: /api/  ->  http://localhost:8080
[HPM] Proxy rewrite rule created: …
Run Code Online (Sandbox Code Playgroud)

http-proxy angular-cli angular

9
推荐指数
1
解决办法
7901
查看次数

来自SOCKS服务器的错误回复,而我使用HTTP代理(使用Apache HTTP库)

我知道有很多关于错误的问题,这些错误Malformed reply from SOCKS server主要指向代理的错误配置.

但是,就我而言,我正在使用系统HTTP(!)代理来执行带有apache httpclient库4.3.5(httpcore 4.3.2)的POST请求,如下所示:

SystemDefaultRoutePlanner routePlanner = new SystemDefaultRoutePlanner(
        ProxySelector.getDefault());
CloseableHttpClient httpclient = HttpClients.custom()
        .setRoutePlanner(routePlanner)
        .build();
Run Code Online (Sandbox Code Playgroud)

这也是/sf/answers/1452048181/中的建议

在大多数情况下,这个httpclient和以下的http POST请求都能很好地工作.但是,在一个客户,它失败并出现以下日志错误:

Mrz 05, 2015 10:11:04 AM org.apache.http.impl.execchain.RetryExec execute
Information: I/O exception (java.net.SocketException) caught when processing request to {}->http://proxy.local:80->http://my-webservice.tld:80: Malformed reply from SOCKS server
Mrz 05, 2015 10:11:04 AM org.apache.http.impl.execchain.RetryExec execute
Information: Retrying request to {}->http://proxy.local:80->http://my-webservice.tld:80
Run Code Online (Sandbox Code Playgroud)

本地系统代理设置(在Windows 7上)未配置为SOCKS代理,而是配置为HTTP代理!我证实了这一点通过登录不同RoutePlannerProxy参数:

TunnelType: PLAIN
TargetHost: http://my-webservice.tld:80
ProxyHost: http://proxy.local:80
ProxyPort: 80
ProxyType: HTTP
Run Code Online (Sandbox Code Playgroud)

但是,我的POST请求未正确发送.在代理日志文件中,它显示如下: …

java proxy http-proxy apache-httpclient-4.x

8
推荐指数
0
解决办法
1996
查看次数

如何为 kubernetes (v1.11.2) 集群设置代理设置(http_proxy 变量)?

我设置了一个 Kubernetes 集群,但由于组织政策的原因,该集群无法连接互联网。现在有一些服务需要通过互联网进行通信。为了解决这个问题,我设置了一个位于 K8s 集群外部的转发代理 (Squid)。我的 K8s 集群的所有节点都可以使用正向代理访问“google.com”。但我无法让我的 Pod 通过该代理进行通信。

我在所有主节点和工作节点上设置了以下变量:

export http_proxy="http://10.x.x.x:3128"
export https_proxy="https://10.x.x.x:3128"
Run Code Online (Sandbox Code Playgroud)

我能够从主节点和工作节点卷曲 google.com。但是当我附加到容器中时,我注意到没有变量 http_proxy 和 https_proxy。并且它无法执行成功的卷曲。

我的 Pod 和服务网络与我的 VM 网络不同

pod-network-cidr=192.167.0.0/16 
service-cidr 192.168.0.0/16 
Run Code Online (Sandbox Code Playgroud)

我的虚拟机网络如下:

Master  -> 10.2.2.40
Worker1 -> 10.2.2.41
Worker2 -> 10.2.2.42
Worker3 -> 10.2.2.43
Run Code Online (Sandbox Code Playgroud)

我的转发代理运行在

Forward Proxy: 10.5.2.30
Run Code Online (Sandbox Code Playgroud)

我使用的是 kubernetes 版本 v1.11.2。这里是否有任何帮助,例如我应该将 kubernetes 集群的 http_proxy 设置放在哪里,以使其对所有 Pod 和服务有效?

proxy squid http-proxy docker kubernetes

8
推荐指数
1
解决办法
4万
查看次数

http_proxy 和 https_proxy 的区别

我想了解 http_proxy 和 https_proxy 环境变量之间的区别。

所以我的理解是,如果我(作为客户端)发送 http 请求,将使用 http_proxy。如果我(作为客户端)发送 https 请求,将使用 https_proxy。

有一些可能的设置来设置 http_proxy 和 https_proxy:

1. http_proxy = http://proxy:port
2. https_proxy = http://proxy:port
3. http_proxy = https://proxy:port
4. https_proxy = https://proxy:port
Run Code Online (Sandbox Code Playgroud)

据我了解,变体 1、2 可能是常见设置。变体 3 怎么样,它是一种可能的设置吗?请求是如何传输的?我认为4也是一个可能的设置,但我不清楚工作流程。

这是我的猜测:

在第一个设置中,如果我向目标服务器发送 http 请求,则将使用 http_proxy,使用此设置,请求将作为客户端发送 --(http 请求) --proxy --(http 请求) -- 服务器

在第二个设置中,如果我向目标服务器发送 https 请求,则将使用 https_proxy,使用此设置,请求将是客户端 --(https 请求)-- 代理 --(https 请求) --server。在这种情况下,代理只会将加密的数据包传输到服务器,数据包只会在服务器端解密。

在第三种设置中,如果我向目标服务器发送 http 请求,使用此设置,会发生什么?它是一个合格的设置吗?

在第四个设置中,如果我向目标服务器发送 https 请求,则将使用 https_proxy,使用此设置,请求将通过客户端发送 --(https 请求) --proxy --(https 请求) -- 服务器. 在这种情况下,这是否意味着客户端的 https 请求使用代理的公钥加密,哪个代理首先解密请求,然后使用目标服务器的 pk 加密,然后将请求转发到服务器?然而,在这种情况下,它是不是打破了客户端和服务器之间的端到端加密?如果我的假设是错误的,那么此设置的正确图片是什么?

具体来说,我想知道从客户端 - …

proxy environment-variables http-proxy

8
推荐指数
2
解决办法
6919
查看次数