diff --git a/src/BeSimple/SoapClient/Curl/Curl.php b/src/BeSimple/SoapClient/Curl/Curl.php index 53121d6..65ee796 100644 --- a/src/BeSimple/SoapClient/Curl/Curl.php +++ b/src/BeSimple/SoapClient/Curl/Curl.php @@ -158,7 +158,7 @@ class Curl $location ); - if (!is_integer($httpResponseCode) || $httpResponseCode >= 400) { + if (!is_integer($httpResponseCode) || $httpResponseCode >= 400 || $httpResponseCode === 0) { return new CurlResponse( $httpRequestHeadersAsString, diff --git a/src/BeSimple/SoapClient/WsdlDownloader.php b/src/BeSimple/SoapClient/WsdlDownloader.php index f1bf1b4..87eb633 100644 --- a/src/BeSimple/SoapClient/WsdlDownloader.php +++ b/src/BeSimple/SoapClient/WsdlDownloader.php @@ -75,7 +75,7 @@ class WsdlDownloader $curlResponse = $curl->executeCurlWithCachedSession($wsdlPath); if ($curlResponse->curlStatusSuccess()) { if (mb_strlen($curlResponse->getResponseBody()) === 0) { - throw new Exception('Could not write WSDL cache file: curl response empty'); + throw new Exception('Could not write WSDL cache file: empty curl response from: '.$wsdlPath); } if ($resolveRemoteIncludes === true) { $document = $this->getXmlFileDOMDocument($curl, $cacheType, $curlResponse->getResponseBody(), $wsdlPath); diff --git a/src/BeSimple/SoapCommon/Mime/Parser.php b/src/BeSimple/SoapCommon/Mime/Parser.php index 63c949f..0888d65 100644 --- a/src/BeSimple/SoapCommon/Mime/Parser.php +++ b/src/BeSimple/SoapCommon/Mime/Parser.php @@ -110,7 +110,8 @@ class Parser } if (strpos($currentHeader, ':') !== false) { list($headerName, $headerValue) = explode(':', $currentHeader, 2); - $headerValue = iconv_mime_decode($headerValue, 0, Part::CHARSET_UTF8); + $headerValueWithNoCrAtTheEnd = trim($headerValue); + $headerValue = iconv_mime_decode($headerValueWithNoCrAtTheEnd, 0, Part::CHARSET_UTF8); $parsedMimeHeaders = ContentTypeParser::parseContentTypeHeader($headerName, $headerValue); foreach ($parsedMimeHeaders as $parsedMimeHeader) { $currentPart->setHeader(