diff --git a/modules/juce_core/native/juce_curl_Network.cpp b/modules/juce_core/native/juce_curl_Network.cpp index b06756f5b8..8051ed4a0b 100644 --- a/modules/juce_core/native/juce_curl_Network.cpp +++ b/modules/juce_core/native/juce_curl_Network.cpp @@ -143,7 +143,7 @@ private: && curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, StaticCurlWrite) == CURLE_OK && curl_easy_setopt (curl, CURLOPT_MAXREDIRS, static_cast (maxRedirects)) == CURLE_OK && curl_easy_setopt (curl, CURLOPT_USERAGENT, userAgent.toRawUTF8()) == CURLE_OK - && curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, 1) == CURLE_OK) + && curl_easy_setopt (curl, CURLOPT_FOLLOWLOCATION, (maxRedirects > 0 ? 1 : 0)) == CURLE_OK) { if (isPost) { @@ -441,10 +441,17 @@ private: size_t len = size * nmemb; - curlHeaders += String (ptr, len); + String header (ptr, len); + + if (! header.contains (":") && header.startsWithIgnoreCase ("HTTP/")) + curlHeaders.clear(); + else + curlHeaders += header; + return len; } + //============================================================================== // Static method wrappers static size_t StaticCurlWrite (char* ptr, size_t size, size_t nmemb, void* userdata)