gpt4 book ai didi

android - 适用于 Android 的代理服务器 - 处理 HTTPS

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:33 30 4
gpt4 key购买 nike

我已经为捕获所有 HTTP 请求的 Android 构建了代理服务器。我还收到了 HTTPS,我对此不感兴趣,但我只想让它们通过。

根据 http://muffin.doit.org/docs/rfc/tunneling_ssl.html当 SSL 连接通过代理时,HTTP 方法是 CONNECT。为此,我向客户发送回复:

            if (request.startsWith("CONNECT")) {
proxyOutputStream.write(("HTTP/1.1 200 Connection established" + CRLF + CRLF).getBytes());
proxyOutputStream.flush();

然后我启用双向连接:

                DirectionalConnectionHandler client = new DirectionalConnectionHandler(mProxySocket, mOutsideSocket);
client.start();
DirectionalConnectionHandler server = new DirectionalConnectionHandler(mOutsideSocket, mProxySocket);
server.start();

但是“已建立连接”会在浏览器中导致“ERR_SSL_PROTOCOL_ERROR”错误。如果我不发送“已建立连接”响应,则错误为 ERR_TUNNEL_CONNECTION_FAILED

应该怎么做才能启用正常的 HTTPS 连接并且不破坏浏览器?

最佳答案

您不需要在代理模式下响应 HTTP/1.1 200 Connection established

删除以下代码,

proxyOutputStream.write(("HTTP/1.1 200 Connection established" + CRLF + CRLF).getBytes());
proxyOutputStream.flush();

关于android - 适用于 Android 的代理服务器 - 处理 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33152211/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com