cURL / Mailing Lists / curl-library / Single Mail

curl-library

Random proxy authentication error in windows

From: narayanan manikandan <manika324_at_yahoo.co.in>
Date: Wed, 22 May 2013 21:46:25 +0800 (SGT)

s and I have to send some requests to the server. I am currently using libcurl. However there is a limitation when proxy server with authentication is involved before the request sent out to the server. I explored the options in libcurl but i could not able to make it work. If i hardcode the username / password it works. But I do not want to get the user name and password by my application; I would prefer that libcurl can requests these at the start of a transfer. Is there a different library i can use like winhttp or libcurl is the best one to use? Below are the curl settings done before making the request curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_URL, urlString.data()); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_WRITEFUNCTION, receiveDataCallback); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_WRITEDATA, &curlPerformStorage); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_USERAGENT, "libcurl-agent/1.0"); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_FOLLOWLOCATION, 1); if(NULL != GetWindowsProxyConfig().lpszProxy){ LPWSTR wStr = GetWindowsProxyConfig().lpszProxy; char* buffer = new char[100]; wcstombs(buffer, wStr, 100) ; curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_PROXY, "<proxy_name>"); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_PROXYPORT, <number>); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_HTTPAUTH, CURLAUTH_NONE); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); } else { curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_PROXY,
 "<proxy_name>"); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_PROXYPORT, <number>); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_HTTPAUTH, CURLAUTH_NTLM); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_PROXYAUTH, CURLAUTH_NTLM); } curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_USE_SSL, CURLUSESSL_ALL); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_SSL_VERIFYPEER, 1); curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_SSL_VERIFYHOST, 2); if(proxyStr.length() > 0){ curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_HTTPPROXYTUNNEL, 1L); } curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_FAILONERROR, 1); curlResultCode= curl_easy_setopt ( curlHandle, CURLOPT_ERRORBUFFER, errorbuffer ); int nConnectionTimeout = curlPerformStorage.GetConnectionTim eOut(); if (nConnectionTimeout > 0) { curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_CONNECTTIMEOUT, nConnectionTimeout); } int nTransferTimeout = curlPerformStorage.GetTransferTimeO ut(); if (nTransferTimeout > 0) { curlResultCode=curl_easy_setopt(cur lHandle, CURLOPT_TIMEOUT, nTransferTimeout); } curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_PROGRESSFUNCTION , ProgressCallback); if (curlResultCode == CURLE_OK) { curlResultCode = curl_easy_setopt(curlHandle, CURLOPT_NOPROGRESS, FALSE); curlResultCode= curl_easy_setopt(curlHandle, CURLOPT_PROGRESSDATA , &curlPerformStorage); } curlResultCode = curl_easy_perform(curlHandle); if (curlResultCode != CURLE_OK) { } else { } curl_easy_reset(curlHandle); return curlResultCode;

-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2013-05-22