我正在使用java.net.Proxy通过Nginx代理连接到我的服务器。 Nginx代理已启用SSL。我的服务器网址是https。
当我尝试下面的示例代码时,出现400错误:
客户端在读取客户端请求标头时向HTTPS端口发送了纯HTTP请求
这可能是因为我无法在代码“ https”中指定代理IP地址,所以Nginx代理认为它是一个http请求,并生成错误。
在禁用Nginx代理SSL或直接连接到服务器时,它可以正常工作。
这可以通过编程方式解决,还是只能通过配置Nginx代理将http请求重定向到https来解决?
String url = "https://myserver.com";
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("1.2.3.4", 444));
HttpURLConnection con = (HttpURLConnection) (new URL(url).openConnection(proxy));
con.connect();