crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Curl + proxy, Периодически перестает работать proxy
dimon1980ddd
  опции профиля:
сообщение 13.2.2010, 17:07
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 35
Регистрация: 13.12.2009
Пользователь №: 1304

Спасибо сказали: 0 раз(а)




Репутация:   0  


Для отсылки информации использую curl. Понадобилось добавить поддержку прокси... Открыл документацию посмотрел добавил несколько строчек проверил, вроде бы все работает и забыл...
Но... Потом оказалось, что все работает через раз...
Посмотрел ошибку и вывел ее описание:
* Curl failed (5:Could not resolve proxy: `t<; Host not found)

Вот сама функция... Выходит что url прокси не тот который я устанавливаю, хотя в лог пишется все правильно....
В чем может быть проблема?

CODE
void CurlSender::setProxy(const QString url, const QString port, const QString user, const QString password)
{
if (curl)
{
QByteArray proxy = $(url + ":" + port);
QByteArray userinfo = "";
if (!user.isEmpty()) userinfo = $(user + ":" + password);

if (!proxy.isEmpty() && !port.isEmpty())
{
appLog->write("Curl params. Set proxy:", proxy.data());
curl_easy_setopt(curl, CURLOPT_PROXY, proxy.data());
}
if (!userinfo.isEmpty())
{
appLog->write("Curl params. Set proxy user with password:", userinfo.data());
curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, userinfo.data());
}
}
}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dimon1980ddd
  опции профиля:
сообщение 13.2.2010, 18:01
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 35
Регистрация: 13.12.2009
Пользователь №: 1304

Спасибо сказали: 0 раз(а)




Репутация:   0  


Выяснил что проблема в передаче параметров...
Т.е. если передать так
curl_easy_setopt(curl, CURLOPT_PROXY, "proxy.some.ru:8888");
То все нормально (гонял долго) - проблем нет...

А если пробовать так - то работает через раз :-(

CODE
QByteArray proxy = "";
if (!url.isEmpty())
{
proxy.append(url);
proxy.append(":");
proxy.append(port);
}
if (!proxy.isEmpty() && !port.isEmpty())
{
appLog->write("Curl params. Set proxy:", proxy.constData());
curl_easy_setopt(curl, CURLOPT_PROXY, proxy.constData());
}


В чем отличие?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 4:23