Как собрать libcurl для Android Archs с функциональностью прокси - PullRequest
0 голосов
/ 22 мая 2019

Мне нужно использовать библиотеку libcurl cpp в одном из моих проектов Android, и я могу собрать библиотеку с поддержкой SSL, но функция прокси не работает. Во-первых, я ищу включение / отключение прокси в системе, отправляя запрос HEAD на прокси и, в зависимости от этого, добавляю URL прокси в опции curl.

мое приложение для 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;
    }
...