Hi,
  
 I am using the libcurl to post data for a https URL via internal proxy, but it 
can not work, what parameters/else shall I set?
  
 I ever used the same setting to access a http URL via proxy, it works; I also 
have tried to access a internal https URL without proxy, it also works.
  
 The settings I have made as below:
  
case Request::httpPost: {
 
const RequestPost& post = *(RequestPost*)&request;
 
CURL_FUNC(curl_easy_setopt( m_ClientEasy, CURLOPT_POSTREDIR, 
CURL_REDIR_POST_ALL), CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt( m_ClientEasy, CURLOPT_POST, 1), CLC_NOT_AVAILABLE);
 
requestHeaders.push_back(Header("Content-Type", post.contentType()));
 
requestHeaders.push_back(Header("Content-Length", 
String::format("%u",post.entity().size())));
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_POSTFIELDS, 
&post.entity()[0]), CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_POSTFIELDSIZE, 
post.entity().size()), CLC_NOT_AVAILABLE);
 
break;
 
}
 
 
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_URL, 
&request.URL().toByteArray(false, true)[0]), CLC_NOT_AVAILABLE);
 
// build headers
 
for (size_t i=0; i<requestHeaders.size(); i++) {
 
m_CurlHeaders = curl_slist_append( (curl_slist*)m_CurlHeaders ,
 
(char*)&(requestHeaders[i].key() + ": " + 
requestHeaders[i].value()).toByteArray(false, true)[0] );
 
}
 
m_ResponseWeakRef = response;
 
if (response) {
 
response->clear();
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_WRITEFUNCTION, 
&response->contentCallbackFunc), CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_WRITEDATA, response), 
CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_HEADERFUNCTION, 
&response->headersCallbackFunc), CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_HEADERDATA, response), 
CLC_NOT_AVAILABLE);
 
}
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_HTTPHEADER, m_CurlHeaders), 
CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_NOBODY, request.bodyRequired() 
? 0 : 1), CLC_NOT_AVAILABLE);
 
 
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_SSL_VERIFYPEER, 
(!m_BundleCA.empty() && m_SSLCheck) ? 1 : 0), CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_SSL_VERIFYHOST, 
(!m_BundleCA.empty() && m_SSLCheck) ? 2 : 0), CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_FOLLOWLOCATION, 1), 
CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_POSTREDIR, 
CURL_REDIR_POST_ALL), CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_PROXY, 
m_ProxyAddress.toStdString().c_str()), CLC_NOT_AVAILABLE);
 
CURL_FUNC(curl_easy_setopt(m_ClientEasy, CURLOPT_HTTPPROXYTUNNEL, m_ProxyTunnel 
? 1 : 0), CLC_NOT_AVAILABLE);
 
 
 

 
CLC_RETURN(CLC_SUCCESS);
 
 

  
 Any idea?
  
 Thanks a lot.
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to