Re: PHP 5.3 SoapClient Stripping HTML special characters

From: Date: Fri, 19 Aug 2011 20:22:05 +0000
Subject: Re: PHP 5.3 SoapClient Stripping HTML special characters
References: 1 2 3 4 5 6 7  Groups: php.windows 
Request: Send a blank email to php-windows+get-30692@lists.php.net to get a copy of this message
On 19 August 2011 21:18, James Crow <james@ultratans.com> wrote: > On Fri, 19 Aug 2011 21:12:21 +0100, Richard Quadling <rquadling@gmail.com> > wrote: >> On 19 August 2011 19:28, James Crow <james@ultratans.com> wrote: >>> On Fri, 19 Aug 2011 17:30:27 +0100, Richard Quadling >>> <rquadling@gmail.com> >>> wrote: >>>> On 19 August 2011 17:13, James Crow <james@ultratans.com> wrote: >>>>> On Fri, 19 Aug 2011 16:33:43 +0100, Richard Quadling >>>>> <rquadling@gmail.com> >>>>> wrote: >>>>>> On 19 August 2011 16:16, James Crow <james@ultratans.com> wrote: >>>>>>> Hi all, >>>>>>> >>>>>>> I am using the SOAP client to retrieve data from a web server. One >>>>> field >>>>>>> in the returned object is a text string that may contain embedded >>>>>>> carriage >>>>>>> returns. If I look at the raw packets they appear as ' >>>>> ' in the >>>>>>> string. >>>>>>> When I get the string in the SoapClient the carriage return has > been >>>>>>> stripped. So far I have been unable to find a setting that will > leave >>>>>>> this >>>>>>> embedded character in place. >>>>>>> >>>>>>> Can someone point me in the right direction? >>>>>>> >>>>>>> Thanks, >>>>>>> James >>>>>> >>>>>> Can you supply a WSDL URL for the service? I can quickly verify what >>>>>> you are seeing. >>>>>> >>>>>> Can you tell us how you perceive the missing character? If you are >>>>>> echoing it to a browser, then there will be no visual line break as >>>>>> that is not a HTML character. >>>>>> >>>>>> But if you wrap the output in <pre>...</pre> tags, you should >>>>>> see it >>>>> just >>>>>> fine. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Richard Quadling >>>>>> Twitter : EE : Zend : PHPDoc >>>>>> @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea >>>>> >>>>> Richard, >>>>> >>>>> Thanks for the response. My initial email appears garbled somewhat. >>>>> Between the single quotes should have been >>>>> >>>>> The WDSL is: >>>>> > > http://clients.mindbodyonline.com/api/0_5/AppointmentService.asmx?WSDL >>>>> >>>>> I am using functions which return (among other things) an Appointment >>>>> object. This Appointment object has a property named Notes. The Notes >>>>> item >>>>> in their software is displayed and edited in a html textarea field. > If >>> a >>>>> newline is entered in the textarea field I need it to be present in > the >>>>> string in the SoapClient. >>>>> >>>>> To actually connect to with a SOAP client requires a username and >>>>> password. >>>>> >>>>> Thanks, >>>>> James >>>>> >>>>> >>>> >>>> What you need to determine is the EXACT content. >>>> >>>> Can you dump the $o_Service->__getLastResponse() to a file, and zip > it? >>>> >>>> I have a framework that I use to test SOAP services. It isn't 100% >>>> automatic, but it doesn't take too long. >>>> >>>> I've got it working as far as I can without the credentials. >>>> >>>> Hopefully you can add them in and the rest of the code should work. >>>> >>>> I assume it is just a SoapHeader you need to add. >>>> >>>> Running the consume.php script currently outputs ... >>>> >>>> Request Headers >>>> --------------- >>>> POST /api/0_5/AppointmentService.asmx HTTP/1.1 >>>> Host: clients.mindbodyonline.com >>>> Connection: Keep-Alive >>>> User-Agent: PHP >>>> Content-Type: text/xml; charset=utf-8 >>>> SOAPAction: > > "http://clients.mindbodyonline.com/api/0_5/GetScheduleItems" >>>> Content-Length: 742 >>>> >>>> >>>> Request (XML) >>>> ------------- >>>> <?xml version="1.0" encoding="utf-8"?> >>>> <SOAP-ENV:Envelope >>>> >>>> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" >>>> >>>> >>>>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>> >>> >>> xmlns:ns1="http://clients.mindbodyonline.com/api/0_5"> >>>>   <SOAP-ENV:Body> >>>>     <ns1:GetScheduleItems> >>>>       <ns1:Request> >>>>         <ns1:XMLDetail xsi:nil="true" /> >>>>         <ns1:PageSize xsi:nil="true" /> >>>>         <ns1:CurrentPageIndex xsi:nil="true" /> >>>>         <ns1:LocationIDs> >>>>           <ns1:int>1</ns1:int> >>>>           <ns1:int>2</ns1:int> >>>>           <ns1:int>3</ns1:int> >>>>         </ns1:LocationIDs> >>>>         <ns1:StaffIDs> >>>>           <ns1:long>100</ns1:long> >>>>           <ns1:long>200</ns1:long> >>>>           <ns1:long>300</ns1:long> >>>>         </ns1:StaffIDs> >>>>         <ns1:StartDate>2011-01-01T00:00:00Z</ns1:StartDate> >>>>         <ns1:EndDate>2011-12-31T23:59:59Z</ns1:EndDate> >>>>       </ns1:Request> >>>>     </ns1:GetScheduleItems> >>>>   </SOAP-ENV:Body> >>>> </SOAP-ENV:Envelope> >>>> >>>> Response Headers >>>> ---------------- >>>> HTTP/1.1 200 OK >>>> Cache-Control: private, max-age=0 >>>> Content-Type: text/xml; charset=utf-8 >>>> Server: Microsoft-IIS/7.5 >>>> X-AspNet-Version: 2.0.50727 >>>> X-Powered-By: ASP.NET >>>> P3P: CAO DSP COR CUR TAIa OUR NOR UNI STA >>>> Date: Fri, 19 Aug 2011 16:28:44 GMT >>>> Content-Length: 614 >>>> >>>> Response (XML) >>>> -------------- >>>> <?xml version="1.0" encoding="utf-8"?> >>>> <soap:Envelope >>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" >>>>               >>>>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>               >>>>  xmlns:xsd="http://www.w3.org/2001/XMLSchema"> >>>>   <soap:Body> >>>>     <GetScheduleItemsResponse >>>>     >>>> xmlns="http://clients.mindbodyonline.com/api/0_5"> >>>>       <GetScheduleItemsResult> >>>>         <Status>InvalidCredentials</Status> >>>>         <Message>SourceCredentials must be provided.</Message> >>>>         <XMLDetail>Full</XMLDetail> >>>>         <ResultCount>0</ResultCount> >>>>         <CurrentPageIndex>0</CurrentPageIndex> >>>>         <TotalPageCount>0</TotalPageCount> >>>>       </GetScheduleItemsResult> >>>>     </GetScheduleItemsResponse> >>>>   </soap:Body> >>>> </soap:Envelope> >>>> >>>> >>>> Response (Interpreted) >>>> ---------------------- >>>> GetScheduleItemsResult Object >>>> ( >>>>     [StaffMembers] => >>>>     [Status] => InvalidCredentials >>>>     [Message] => SourceCredentials must be provided. >>>>     [XMLDetail] => Full >>>>     [ResultCount] => 0 >>>>     [CurrentPageIndex] => 0 >>>>     [TotalPageCount] => 0 >>>> ) >>> >>> I entered my login credentials in the consume.php script and changed it >>> to >>> dump __getLastResponse() to a text file. I do not want to include the >>> entire file because it contains customer information, but I did look >>> through the file with vi. The Notes /Notes XMl items do not contain >>> embedded carriage returns or line feeds. I think this is a bug in the >>> SOAP >>> service and not in the PHP SoapClient. >>> >>> Thanks, >>> James >>> >>> >> >> So, at this stage, proving the lack of the returns is all I can do. >> >> Are you responsible for the service? > > Unfortunately I am not responsible for the service. I can only bring it > their attention and try to get them to fix it. Using your code, it is easy > to display exactly what the problem is. > > Thank you, > James > > Glad to have helped. -- Richard Quadling Twitter : EE : Zend : PHPDoc @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea

« previous php.windows (#30692) next »