SOAP interface query

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Stephen

    #1

    SOAP interface query

    I've got a problem with a PHP program that i've written using the
    standard SOAP client with a WSDL file.
    When calling one of the functions on the SOAP server i'm occasionally
    receiving a response containing a pound sign encoded as £. This
    causes my program to report 'Looks like we got no XML document' and not
    process the response.
    The SOAP server is provided by a third party and appears to be Perl
    SOAPLite. They insist that the pound is being encoded correctly.

    I'm using PHP 5.1.4 from the command line running on Windows 2000.


    Is there any way around this problem?


    Thanks in advance,
    Stephen

  • David Haynes

    #2
    Re: SOAP interface query

    Stephen wrote:[color=blue]
    > I've got a problem with a PHP program that i've written using the
    > standard SOAP client with a WSDL file.
    > When calling one of the functions on the SOAP server i'm occasionally
    > receiving a response containing a pound sign encoded as £. This
    > causes my program to report 'Looks like we got no XML document' and not
    > process the response.
    > The SOAP server is provided by a third party and appears to be Perl
    > SOAPLite. They insist that the pound is being encoded correctly.
    >
    > I'm using PHP 5.1.4 from the command line running on Windows 2000.
    >
    >
    > Is there any way around this problem?
    >
    >
    > Thanks in advance,
    > Stephen
    >[/color]
    Stephen,
    Try using nuSOAP instead. I know it's a bit of a pain to switch, but I
    found nuSOAP works a little bit better with the perl SOAP implementation.

    -david-

    Comment

    • Stephen

      #3
      Re: SOAP interface query


      David Haynes wote:[color=blue]
      > Stephen wrote:[color=green]
      > > I've got a problem with a PHP program that i've written using the
      > > standard SOAP client with a WSDL file.
      > > When calling one of the functions on the SOAP server i'm occasionally
      > > receiving a response containing a pound sign encoded as £. This
      > > causes my program to report 'Looks like we got no XML document' and not
      > > process the response.
      > > The SOAP server is provided by a third party and appears to be Perl
      > > SOAPLite. They insist that the pound is being encoded correctly.
      > >
      > > I'm using PHP 5.1.4 from the command line running on Windows 2000.
      > >
      > >
      > > Is there any way around this problem?
      > >
      > >
      > > Thanks in advance,
      > > Stephen
      > >[/color]
      > Stephen,
      > Try using nuSOAP instead. I know it's a bit of a pain to switch, but I
      > found nuSOAP works a little bit better with the perl SOAP implementation.
      >
      > -david-[/color]


      Thanks. I'll give nuSOAP a try.

      regards,
      Stephen

      Comment

      • Stephen

        #4
        Re: SOAP interface query


        Stephen wote:
        David Haynes wote:
        Stephen wrote:
        I've got a problem with a PHP program that i've written using the
        standard SOAP client with a WSDL file.
        When calling one of the functions on the SOAP server i'm occasionally
        receiving a response containing a pound sign encoded as £. This
        causes my program to report 'Looks like we got no XML document' and not
        process the response.
        The SOAP server is provided by a third party and appears to be Perl
        SOAPLite. They insist that the pound is being encoded correctly.
        >
        I'm using PHP 5.1.4 from the command line running on Windows 2000.
        >
        >
        Is there any way around this problem?
        >
        >
        Thanks in advance,
        Stephen
        >
        Stephen,
        Try using nuSOAP instead. I know it's a bit of a pain to switch, but I
        found nuSOAP works a little bit better with the perl SOAP implementation.

        -david-
        >
        >
        Thanks. I'll give nuSOAP a try.
        >
        regards,
        Stephen
        I've had a go with nuSOAP and i'm still having no joy. The function
        call returns false when I try to bring back the request containing the
        pound sign.

        The offending line looks like this:

        <commentText xsi:type="xsd:s tring">this is a &pound; pound
        sign</commentText>

        The xml headers on the response file are:

        <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
        xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
        xmlns:SOAP-ENC="http://schemas.xmlsoap .org/soap/encoding/"
        xmlns:SOAP-ENV="http://schemas.xmlsoap .org/soap/envelope/"
        xmlns:xsd="http ://www.w3.org/2001/XMLSchema"
        SOAP-ENV:encodingSty le="http://schemas.xmlsoap .org/soap/encoding/">

        regards,
        Stephen

        Comment

        • David Haynes

          #5
          Re: SOAP interface query

          Stephen wrote:
          Stephen wote:
          >David Haynes wote:
          >>Stephen wrote:
          >>>I've got a problem with a PHP program that i've written using the
          >>>standard SOAP client with a WSDL file.
          >>>When calling one of the functions on the SOAP server i'm occasionally
          >>>receiving a response containing a pound sign encoded as &pound;. This
          >>>causes my program to report 'Looks like we got no XML document' and not
          >>>process the response.
          >>>The SOAP server is provided by a third party and appears to be Perl
          >>>SOAPLite. They insist that the pound is being encoded correctly.
          >>>>
          >>>I'm using PHP 5.1.4 from the command line running on Windows 2000.
          >>>>
          >>>>
          >>>Is there any way around this problem?
          >>>>
          >>>>
          >>>Thanks in advance,
          >>>Stephen
          >>>>
          >>Stephen,
          >>Try using nuSOAP instead. I know it's a bit of a pain to switch, but I
          >>found nuSOAP works a little bit better with the perl SOAP implementation.
          >>>
          >>-david-
          >>
          >Thanks. I'll give nuSOAP a try.
          >>
          >regards,
          >Stephen
          >
          I've had a go with nuSOAP and i'm still having no joy. The function
          call returns false when I try to bring back the request containing the
          pound sign.
          >
          The offending line looks like this:
          >
          <commentText xsi:type="xsd:s tring">this is a &pound; pound
          sign</commentText>
          >
          The xml headers on the response file are:
          >
          <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
          xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
          xmlns:SOAP-ENC="http://schemas.xmlsoap .org/soap/encoding/"
          xmlns:SOAP-ENV="http://schemas.xmlsoap .org/soap/envelope/"
          xmlns:xsd="http ://www.w3.org/2001/XMLSchema"
          SOAP-ENV:encodingSty le="http://schemas.xmlsoap .org/soap/encoding/">
          >
          regards,
          Stephen
          >
          A couple of things to try then:
          1. set encoding="iso-8859-1" instead of "UTF-8"
          2. encode your pound sign as &#A3; or &#163;

          -david-

          Comment

          • Stephen

            #6
            Re: SOAP interface query


            David Haynes wote:
            Stephen wrote:
            Stephen wote:
            David Haynes wote:
            >Stephen wrote:
            >>I've got a problem with a PHP program that i've written using the
            >>standard SOAP client with a WSDL file.
            >>When calling one of the functions on the SOAP server i'm occasionally
            >>receiving a response containing a pound sign encoded as &pound;. This
            >>causes my program to report 'Looks like we got no XML document' and not
            >>process the response.
            >>The SOAP server is provided by a third party and appears to be Perl
            >>SOAPLite. They insist that the pound is being encoded correctly.
            >>>
            >>I'm using PHP 5.1.4 from the command line running on Windows 2000.
            >>>
            >>>
            >>Is there any way around this problem?
            >>>
            >>>
            >>Thanks in advance,
            >>Stephen
            >>>
            >Stephen,
            >Try using nuSOAP instead. I know it's a bit of a pain to switch, but I
            >found nuSOAP works a little bit better with the perl SOAP implementation.
            >>
            >-david-
            >
            Thanks. I'll give nuSOAP a try.
            >
            regards,
            Stephen
            I've had a go with nuSOAP and i'm still having no joy. The function
            call returns false when I try to bring back the request containing the
            pound sign.

            The offending line looks like this:

            <commentText xsi:type="xsd:s tring">this is a &pound; pound
            sign</commentText>

            The xml headers on the response file are:

            <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
            xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
            xmlns:SOAP-ENC="http://schemas.xmlsoap .org/soap/encoding/"
            xmlns:SOAP-ENV="http://schemas.xmlsoap .org/soap/envelope/"
            xmlns:xsd="http ://www.w3.org/2001/XMLSchema"
            SOAP-ENV:encodingSty le="http://schemas.xmlsoap .org/soap/encoding/">

            regards,
            Stephen
            A couple of things to try then:
            1. set encoding="iso-8859-1" instead of "UTF-8"
            2. encode your pound sign as &#A3; or &#163;
            >
            -david-
            The second option would work if I could persuade the provider of the
            SOAP server to change their code which is a no-goer unfortunately.
            Is there a way of encoding the pound sign within the WSDL file on the
            client side?

            regards,
            Stephen

            Comment

            • David Haynes

              #7
              Re: SOAP interface query

              Stephen wrote:
              David Haynes wote:
              >Stephen wrote:
              >>Stephen wote:
              >>>David Haynes wote:
              >>>>Stephen wrote:
              >>>>>I've got a problem with a PHP program that i've written using the
              >>>>>standard SOAP client with a WSDL file.
              >>>>>When calling one of the functions on the SOAP server i'm occasionally
              >>>>>receivin g a response containing a pound sign encoded as &pound;. This
              >>>>>causes my program to report 'Looks like we got no XML document' and not
              >>>>>process the response.
              >>>>>The SOAP server is provided by a third party and appears to be Perl
              >>>>>SOAPLite . They insist that the pound is being encoded correctly.
              >>>>>>
              >>>>>I'm using PHP 5.1.4 from the command line running on Windows 2000.
              >>>>>>
              >>>>>>
              >>>>>Is there any way around this problem?
              >>>>>>
              >>>>>>
              >>>>>Thanks in advance,
              >>>>>Stephen
              >>>>>>
              >>>>Stephen,
              >>>>Try using nuSOAP instead. I know it's a bit of a pain to switch, but I
              >>>>found nuSOAP works a little bit better with the perl SOAP implementation.
              >>>>>
              >>>>-david-
              >>>Thanks. I'll give nuSOAP a try.
              >>>>
              >>>regards,
              >>>Stephen
              >>I've had a go with nuSOAP and i'm still having no joy. The function
              >>call returns false when I try to bring back the request containing the
              >>pound sign.
              >>>
              >>The offending line looks like this:
              >>>
              >><commentTex t xsi:type="xsd:s tring">this is a &pound; pound
              >>sign</commentText>
              >>>
              >>The xml headers on the response file are:
              >>>
              >><?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
              >>xmlns:xsi="ht tp://www.w3.org/2001/XMLSchema-instance"
              >>xmlns:SOAP-ENC="http://schemas.xmlsoap .org/soap/encoding/"
              >>xmlns:SOAP-ENV="http://schemas.xmlsoap .org/soap/envelope/"
              >>xmlns:xsd="ht tp://www.w3.org/2001/XMLSchema"
              >>SOAP-ENV:encodingSty le="http://schemas.xmlsoap .org/soap/encoding/">
              >>>
              >>regards,
              >>Stephen
              >>>
              >A couple of things to try then:
              >1. set encoding="iso-8859-1" instead of "UTF-8"
              >2. encode your pound sign as &#A3; or &#163;
              >>
              >-david-
              >
              The second option would work if I could persuade the provider of the
              SOAP server to change their code which is a no-goer unfortunately.
              Is there a way of encoding the pound sign within the WSDL file on the
              client side?
              >
              regards,
              Stephen
              >
              Not that I know of but I am not a SOAP/WSDL expert.

              Just so you know, this issue is not unique to PHP. There are a whack of
              posts in the various Java and SOAP forums about this problem.

              The consensus seems to be that &pound; is only supported under certain
              character encoding schemes and that specifying the encoding to
              iso-8859-1 seems to help providing that the SOAP parser honours the
              encoding attribute.

              Comment

              Working...