ID: 30329
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Assigned
Bug Type: SOAP related
Operating System: Solaris 9
PHP Version: 5.0.2
-Assigned To:
+Assigned To: dmitry
Previous Comments:
------------------------------------------------------------------------
[2004-10-05 15:02:48] [EMAIL PROTECTED]
incorrect. The EAServer does respond with HTTP/1.0. And in HTTP/1.0 you
can leave out the Content-Length (if unknown), because chunked encoding
cannot be used with 1.0
------------------------------------------------------------------------
[2004-10-05 14:50:22] [EMAIL PROTECTED]
I don't think we should add workarounds around other buggy products.
This is violating the RFC iirc.
------------------------------------------------------------------------
[2004-10-05 14:45:17] [EMAIL PROTECTED]
The problem also sometimes occurs even with HTTP/1.0. After checking
this, it seems that EAServer does not send a Content-Length! Can we
change this in a way that get_http_body also accepts a zero
content-length?
------------------------------------------------------------------------
[2004-10-05 13:57:07] [EMAIL PROTECTED]
Description:
------------
I get the error message "Error Fetching http body, No Content-Length,
connection closed or chunked data [faultcode]" when try to communicate
with Sybase EAServer via SOAP.
When redirecting the web services via a Proxy-Plugin in an iPlanet
webserver everything works ok.
It seems that EAServer sends some bad encoded HTTP body.
When changing the SOAP extension code to only support HTTP/1.0,
everything works.
How about introducing an additional option to SoapClient named
"http_version" that can be set to 1.1 or 1.0 (default 1.1). At this
time "1.1" is hardcoded into php_http.c.
When 1.0 is on, "Connection:" should be assumed as "close".
Something other:
If the extension CURL is used, why not use CURL for sending SOAP
requests?
Reproduce code:
---------------
<h1>SOAP Test</h1>
<?php
$ws=new
SoapClient("http://ws.pangaea.de:8084/ws/services/WebServices?wsdl",array('trace'=>TRUE));
try {
$res=$ws->metadata("10.1594/PANGAEA/206854");
} catch (SoapFault $sf) {
echo "<pre>".print_r($sf)."</pre>";
}
echo
"<h2>Request</h2><pre>".htmlspecialchars($ws->__getLastRequest())."</pre><h2>Response</h2><pre>".htmlspecialchars($ws->__getLastResponse())."</pre>";
echo "<h2>Decoded</h2><pre>";
print_r($res);
?>
</pre>
Expected result:
----------------
no SoapFault
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30329&edit=1