/// <summary> /// Initialize the underlying libcurl support for this EasyRequest. /// This is separated out of the constructor so that we can take into account /// any additional configuration needed based on the request message /// after the EasyRequest is configured and so that error handling /// can be better handled in the caller. /// </summary> internal void InitializeCurl() { // Create the underlying easy handle SafeCurlHandle easyHandle = Interop.Http.EasyCreate(); if (easyHandle.IsInvalid) { throw new OutOfMemoryException(); } _easyHandle = easyHandle; // Configure the handle SetUrl(); SetMultithreading(); SetTimeouts(); SetRedirection(); SetVerb(); SetVersion(); SetDecompressionOptions(); SetProxyOptions(_requestMessage.RequestUri); SetCredentialsOptions(_handler.GetCredentials(_requestMessage.RequestUri)); SetCookieOption(_requestMessage.RequestUri); SetRequestHeaders(); SetSslOptions(); }
/// <summary> /// Initialize the underlying libcurl support for this EasyRequest. /// This is separated out of the constructor so that we can take into account /// any additional configuration needed based on the request message /// after the EasyRequest is configured and so that error handling /// can be better handled in the caller. /// </summary> internal void InitializeCurl() { // Create the underlying easy handle SafeCurlHandle easyHandle = Interop.Http.EasyCreate(); if (easyHandle.IsInvalid) { throw new OutOfMemoryException(); } _easyHandle = easyHandle; // Before setting any other options, turn on curl's debug tracing // if desired. CURLOPT_VERBOSE may also be set subsequently if // EventSource tracing is enabled. if (s_curlDebugLogging) { SetCurlOption(CURLoption.CURLOPT_VERBOSE, 1L); } // Configure the handle SetUrl(); SetNetworkingOptions(); SetMultithreading(); SetTimeouts(); SetRedirection(); SetVerb(); SetVersion(); SetDecompressionOptions(); SetProxyOptions(_requestMessage.RequestUri); SetCredentialsOptions(_handler.GetCredentials(_requestMessage.RequestUri)); SetCookieOption(_requestMessage.RequestUri); SetRequestHeaders(); SetSslOptions(); }
/// <summary> /// Initialize the underlying libcurl support for this EasyRequest. /// This is separated out of the constructor so that we can take into account /// any additional configuration needed based on the request message /// after the EasyRequest is configured and so that error handling /// can be better handled in the caller. /// </summary> internal void InitializeCurl() { // Create the underlying easy handle SafeCurlHandle easyHandle = Interop.Http.EasyCreate(); if (easyHandle.IsInvalid) { throw new OutOfMemoryException(); } _easyHandle = easyHandle; EventSourceTrace("Configuring request."); // Before setting any other options, turn on curl's debug tracing // if desired. CURLOPT_VERBOSE may also be set subsequently if // EventSource tracing is enabled. if (s_curlDebugLogging) { SetCurlOption(CURLoption.CURLOPT_VERBOSE, 1L); } // Before actually configuring the handle based on the state of the request, // do any necessary cleanup of the request object. SanitizeRequestMessage(); // Configure the handle SetUrl(); SetNetworkingOptions(); SetMultithreading(); SetTimeouts(); SetRedirection(); SetVerb(); SetVersion(); SetDecompressionOptions(); SetProxyOptions(_requestMessage.RequestUri); SetCredentialsOptions(_handler._useDefaultCredentials ? GetDefaultCredentialAndAuth() : _handler.GetCredentials(_requestMessage.RequestUri)); SetCookieOption(_requestMessage.RequestUri); SetRequestHeaders(copyAuthHeaders: true); SetSslOptions(); EventSourceTrace("Done configuring request."); }