ID: 48216 Updated by: sjo...@php.net Reported By: mark at everytruckjob dot com -Status: Open +Status: Feedback Bug Type: SOAP related Operating System: CentOs 5.3 PHP Version: 5.3.0RC2 New Comment:
I tested using the HTTP trace Robert Ripley sent. I discovered some things: Libxml uses the PHP stream wrappers to load the WSDL. These stream wrappers return a malformed WSDL to libxml. This is not specific to SOAP. Running file_get_contents($wsdl) also returns a malformed WSDL. It is reproducible with PHP 5.3 but not with PHP 5.3-HEAD. This suggests that this bug has already been fixed. Previous Comments: ------------------------------------------------------------------------ [2009-10-06 17:09:14] robert dot ripley at fhchs dot edu I'm also experiencing the same problem. Here is the HTTP header of the WSDL: HTTP/1.1 200 OK\r\n Date: Tue, 06 Oct 2009 16:48:26 GMT\r\n Server: Apache/2.2.8 (Win32) PHP/5.2.5\r\n X-Powered-By: PHP/5.2.5\r\n Expires: Wed, 06 Oct 2010 04:00:00 GMT\r\n Cache-Control: no-store, no-cache, must-revalidate\r\n Pragma: no-cache\r\n Last-Modified: Tue, 06 Oct 2009 16:48:26 GMT\r\n Cache-Control: post-check=0, pre-check=0\r\n Vary: User-Agent\r\n Keep-Alive: timeout=5, max=100\r\n Connection: Keep-Alive\r\n Transfer-Encoding: chunked\r\n Content-Type: application/xml;\r\n \r\n ------------------------------------------------------------------------ [2009-09-18 16:39:44] boris dot t at usask dot ca it seems that X-Powered-By: is causing problems. The same problem exists when HTTP/1.x 200 OK Date: Fri, 18 Sep 2009 16:24:06 GMT X-Powered-By: Servlet 2.4; JBoss-4.2.3.GA (build: SVNTag=JBoss_4_2_3_GA date=200807181417)/JBossWeb-2.0 Content-Type: text/xml;charset=utf-8 Connection: close Transfer-Encoding: chunked and the same code works when HTTP/1.x 200 OK Server: Apache-Coyote/1.1 Content-Type: text/xml;charset=utf-8 Transfer-Encoding: chunked Date: Fri, 18 Sep 2009 16:23:28 GMT ------------------------------------------------------------------------ [2009-09-07 20:04:53] sjo...@php.net Thank you for your feedback. It would be most helpful to us if you could supply us with the HTTP transaction of the retrieval of the WSDL. You may use a sniffer like Wireshark to obtain this information, or use this script I wrote <http://www.gissen.nl/files/sniff.php>. ------------------------------------------------------------------------ [2009-09-07 00:43:35] michael dot tibben at gmail dot com We are experiencing a similar issue. However, the HTTP reply is using chunked transfer encoding (Content-Length is NOT required when using chunked) HTTP/1.1 200 OK Date: Sun, 06 Sep 2009 23:25:16 GMT Server: Apache X-Powered-By: Servlet/2.4 JSP/2.0 Transfer-Encoding: chunked Content-Type: text/xml; charset=UTF-8 ------------------------------------------------------------------------ [2009-06-24 10:23:47] sjoerd-php at linuxonly dot nl Thank you for your bug report. The WSDL URL you supply does not send a Content-Length or Transfer-Encoding header in some cases, which is mandatory in a response with a body. In other words, it does not follow the HTTP protocol. You should contact the provider of the WSDL about this. GET /url HTTP/1.0 Host: example.com HTTP/1.1 200 OK Date: Wed, 24 Jun 2009 10:18:10 GMT Server: Apache Connection: close Content-Type: text/xml <?xml version="1.0" encoding="UTF-8"?>... ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/48216 -- Edit this bug report at http://bugs.php.net/?id=48216&edit=1