Re: PHP 5.3 SoapClient Stripping HTML special characters

Richard Quadling <[email protected]>
Newsgroups gmane.comp.php.windows
Message-ID <CAKUjMCU4mOg5O62Cv0UjWi6B421+UR1DPikVE2bBONWdkh++KA@mail.gmail.com>
On 19 August 2011 17:13, James Crow <[email protected]> wrote:
> On Fri, 19 Aug 2011 16:33:43 +0100, Richard Quadling <[email protected]>
> wrote:
>> On 19 August 2011 16:16, James Crow <[email protected]> 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 &amp;#13;
>
> 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
)


-- 
Richard Quadling
Twitter : EE : Zend : PHPDoc
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea

-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
RAQ Soap Test.zip (application/zip, 4.2 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.