先举两个 http 代理请求例子:
====
curl 的 : curl -U user:password -x
your.com:1000 https://myip.ipip.net====
python 的:
import requests
proxies =
{
"https":"http://user:password:@your.com:1000"
}
rsp = requests.get("
https://myip.ipip.net/",proxies=proxies)
print(rsp.text)
====
上面的俩例子通过抓包,可以抓到,首次请求就包含了 Proxy-Authorization 并且访问的
myip.ipip.net:443 。然后后面的包就是 https 请求那一套了。
但是我自己写代码就出问题了,首次请求带不上去 Proxy-Authorization 。
其实就是代理验证的场景,用户使用我们软件,我们需要检测一下用户自己的代理服务器是否可用。
目前遇到的问题是,自己写代码,https 请求通过 http 代理,怎么都加不上。http 请求就完全没问题。
目前是 c++开发的项目,用了 libcurl ,Qt 自带 network 这俩,手动添加 header ,都不行,http 下是完全没问题的。
目前很多用户用的代理服务器,仅支持 header 带 Proxy-Authorization 的模式,如果用 code 407 响应 很多服务器都是直接关闭链接,不处理后续发过去的带验证账号密码的响应 QAQ 。
求大佬解惑如何处理。
(有 c++代码示例最好~)
我的 libcurl 添加头方法:
struct curl_slist *headers = nullptr;
headers = curl_slist_append(headers, "Proxy-Authorization: Basic xxxxxxxxxx");