【发布时间】:2014-07-30 04:41:28
【问题描述】:
我们在通过连接到所提供移动热点网络的 iPad 上的代理时遇到困难。我们尝试根据this post 获取系统当前代理设置,但是只有在 iPad 设置 -> Wi-Fi -> 当前连接网络上的信息标签 -> HTTP 代理 -> 手动中设置代理设置时,它才会检索代理设置。这意味着我们无法通过(可能)移动互联网提供商设置的代理服务器(代理设置在 iPad 设置中不可见)。
有没有人遇到过同样的问题,你是怎么处理的? 另一个问题是,是否有任何方法可以从代理设置中找出代理用户名和密码(出于安全原因,我认为没有),或者您只需要知道这些设置并将其作为配置传递给应用程序? 提前致谢。
curl 代码不适用于移动热点代理:
void TestCurl(std::string ProxyName, std::string proxyPort){
CURL *curl;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_URL, "http://someURLaddress.php");
curl_easy_setopt(curl, CURLOPT_PORT, 80);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)" );
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10 );
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, EncryptedMessage.c_str());
curl_easy_setopt( curl, CURLOPT_FOLLOWLOCATION, 1 );
curl_easy_setopt( curl, CURLOPT_VERBOSE, 1 );
std::string ProxyServerSettings = ProxyName + ":" + proxyPort;
curl_easy_setopt( curl, CURLOPT_PROXY, ProxyServerSettings.c_str());
}
else{
...
}
...//curl cleanup etc
}
【问题讨论】: