我需要在我的一个Android项目中使用libcurl cpp库,并且能够使用SSL支持来构建该库,但是代理功能无法正常工作。 首先,我正在通过向代理发送HEAD请求并根据我在curl选项中添加代理URL的方式来在系统中启用/禁用代理。
我的android应用程序使用我构建的cpp库,而cpp库使用的是libcurl。
是构建库的问题还是库的实现问题?我在构建或代码中缺少什么吗?
我已经为iOS构建了库,它似乎可以很好地与代理功能配合使用。
我已经通过以下链接构建了libcurl库:“ https://github.com/gcesarmza/curl-android-ios”
当我在android中运行该应用程序时,isProxyEnabled()函数返回false,而HEAD请求返回responseCode-0,curl_easy_perform(handle)返回7。但是sendHTTP中的请求成功执行,并返回响应204。
#define PROXY_ADDR "127.0.0.1:5466"
void sendHTTP() {
.....
if(isProxyEnabled()) {
curl_easy_setopt(curl, CURLOPT_PROXY, "socks5://" PROXY_ADDR);
}
.....
}
bool isProxyEnabled() {
bool isEnabled = false;
CURL * handle = curl_easy_init();
curl_easy_setopt(handle,CURLOPT_URL, "http://" PROXY_ADDR);
curl_easy_setopt(handle, CURLOPT_NOBODY, 1L);
CURLcode ret = curl_easy_perform(handle);
if(ret == CURLE_OK) {
isEnabled = true;
}
curl_easy_cleanup(handle);
return isEnabled;
}