[Mono-devel-list] Re: SOAP problem

Lluis Sanchez lluis at ximian.com
Tue Jun 14 06:21:36 EDT 2005


Hi,

This is now fixed in SVN.

Lluis.

El dl 16 de 05 del 2005 a les 15:25 +0200, en/na Sebastian Böhm va
escriure:
> Hi,
> 
> I was able to fix this problem by makeing a change to WebServiceHelper.cs
> 
> I dont know whether this patch is 100% correct, but now I am able to 
> call the Google Adwords Api with mono.
> 
> If I read the soap spec correctly there should only be one "Header" 
> element in the soap envelope.
> 
> /sebastian
> 
> -----------------------------------------------------------------------------------------------------------------------------
> diff -Nur 
> mono-1.1.7/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHelper.cs 
> mono-1.1.7-soap-fix/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHelper.cs
> --- 
> mono-1.1.7/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHelper.cs  
> 2004-07-01 16:11:28.000000000 +0200
> +++ 
> mono-1.1.7-soap-fix/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHelper.cs 
> 2005-05-16 15:11:24.000000000 +0200
> @@ -109,13 +109,13 @@
>             // Serialize headers
>             if (headers != null)
>             {
> +               xtw.WriteStartElement ("soap", "Header", 
> WebServiceHelper.SoapEnvelopeNamespace);
>                 foreach (SoapHeader header in headers)
>                 {
>                     XmlSerializer ser = info.GetHeaderSerializer 
> (header.GetType(), methodUse);
> -                   xtw.WriteStartElement ("soap", "Header", 
> WebServiceHelper.SoapEnvelopeNamespace);
>                     ser.Serialize (xtw, header);
> -                   xtw.WriteEndElement ();
>                 }
> +               xtw.WriteEndElement ();
>             }
> 
>             // Serialize body
> 
> 
> 
> Sebastian Böhm schrieb:
> 
> > Hi,
> >
> > I tracked down the SOAP problem I have with the Google AdWords Api.
> >
> > I compared the content of the Soap POST-Data of .Net and of mono an I 
> > found the following:
> >
> > mono:
> > --------------
> > <soap:Header><useragent >test</useragent></soap:Header>
> > <soap:Header><token>qaswedfrtghzujkiolkiuj</token></soap:Header>
> > <soap:Header><password>xxxxyyyy</password></soap:Header>
> > <soap:Header><email>google at test.com</email></soap:Header>
> > --------------
> >
> > .Net:
> > -------------
> > <soap:Header>
> >    <useragent >test</useragent>
> >    <token>qaswedfrtghzujkiolkiuj</token>
> >    <password>xxxxyyyy</password>
> >    <email>google at test.com</email>
> > </soap:Header>
> > --------------
> >
> > And this really makes a difference for google, as the call fails with 
> > mono.
> >
> > (I ensured this by making Soap call from a perl script, first with all 
> > headers in one soap-header element, and then in multiple soap-header 
> > elements, and it fails with the later)
> >
> > Is there a way to put all soap headers in one single "Header" Element 
> > under mono ?
> >
> >
> > Thank you very much
> >
> > /sebastian
> >
> 
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list




More information about the Mono-devel-list mailing list