为什么我们的服务器从我们的Android应用程序接收CONNECT方法请求而我们的代码中没有使用它?

tbr*_*lle 16 https android http http-status-code-405

一些用户抱怨网络问题.我们的Android应用程序通过https与我们的服务器通信.

我们的Apache日志显示了状态响应; "405方法不允许(CONNECT)",此问题仅在特定IP地址上重现.

我不明白为什么Android应用程序试图通过CONNECT方法到达服务器,我从不在应用程序中使用此方法,我只使用GET,POST或PUT.

似乎代理可能涉及该问题,但我不知道如何解决它.有人知道吗 ?

Bri*_*arm 9

查看wiki的http连接

在HTTP代理服务器后面的HTTP隧道的变体是使用"CONNECT"HTTP方法.[1] [2]

不要指出显而易见的,但在Apache接口中启用connect方法就像答案一样.比要求客户删除其代理服务器更容易.


小智 8

您需要为CONNECT HTTP方法提供支持,该方法通常用于通过代理服务器隧道传输SSL请求.这就是为什么你收到它们,一些用户是代理的背后.

在Apache中,要启用处理CONNECT请求,必须在服务器中存在mod_proxymod_proxy_connect.

问题是您需要保护您的服务器,这可能会破坏您的应用程序的目的.

如果您没有保护服务器,请不要启用mod_proxy和mod_proxy_connect.

  • @Matt这不是用户方面的问题.它是代表服务器代表其后面的客户端发送请求的标准网络实践. (2认同)