[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: http_url_post_xml and utf-8 encoding



   Hi Scott,

   thanks for your reply.

   I had a chat with the server people and it seems like I have to add 1
   to content length (3rd parameter in http_url_post_xml) for every
   norwegian special character in the SOAP variable.

   Is there any way I can fix this by changing something in httpapi?

   I am currently using HTTPAPI Ver 1.17 released 2006-09-23.

   Best regards

   Magne

   >-----Original Message-----
   >From: Scott Klement [mailto:sk@xxxxxxxxxxxxxxxx]
   >Sent: Thursday, January 17, 2008 06:59 PM
   >To: 'HTTPAPI and FTPAPI Projects'
   >Subject: Re: http_url_post_xml and utf-8 encoding
   >
   >Hi Magne,
   >
   >I don't see anything wrong with your code. Though, I notice that you
   >don't specify a content-type that identifies the CCSID of your data.
   >This is something of a shot-in-the-dark, but... you might try it.
   Take
   >a look at the 9th parameter to http_url_post_xml():
   >
   > rc = http_url_post_xml(
   > %trim(WsTffUrl)
   > : %addr(SOAP) + 2
   > : %len(SOAP)
   > : *NULL
   > : %paddr(Incoming)
   > : *NULL
   > : HTTP_TIMEOUT
   > : HTTP_USERAGENT
   > : 'text/xml; encoding=utf-8' );
   >
   >If that doesn't help, perhaps you need to explicitly tell HTTPAPI
   which
   >CCSID your data is in? Right now, you're telling HTTPAPI to translate
   >from CCSID 0 to CCSID 1208. 0=The job's default CCSID. 1208=UTF-8.
   >
   >Perhaps you need to tell it the exact CCSID of your data instead of
   >relying on the Job's CCSID?
   >
   > http_setCCSIDs(1208: xxx);
   >
   >If that still doesn't work, I think you need to narrow things down by
   >looking at the exact hex values that the HTTP server is receiving.
   Are
   >they the correct values for UTF-8? IF not, then the problem must be
   in
   >HTTPAPI somewhere. If they ARE, then the problem must be in the web
   >service.
   >
   >Or perhaps you need to put them in a CDATA wrapper? or escape the
   XML?
   >That seems unlikely since they're text ordinary characters, not used
   by
   >the XML format... but might be worth trying if all else fails.
   >
   >
   >magne@xxxxxxxxx wrote:
   >> Hi Scott,
   >>
   >> I am using the httpapi and it works greate!
   >>
   >> But I am having trouble with http_url_post_xml and norwegian
   >> characters (æøå���).
   >>
   >> Can you please guide me in the right direction? Do I have to do
   some
   >> encoding on the Soap variable?
   >>
   >> Her is some of the code:
   >>
   >> (the characters æøå��� will sometimes appear in variable
   CNAVN and
   >> I only gets a parse error message from the server when these
   >> characters appears)
   >>
   >> SOAP =
   >> '<?xml version="1.0" encoding="UTF-8"?>'
   >> +'<soap:Envelope xmlns:soap='
   >> +'"[1]http://schemas.xmlsoap.org/soap/envelope/"; '
   >> +'xmlns:brukersesjon='
   >> +'"' + %trim(WsBrukerNs) + '" '
   >> +'xmlns:transaksjon='
   >> +'"' + %trim(WsTransNs) + '" '
   >> +'xmlns:wa='
   >> +'"' + %trim(WsTffAutoNs) + '">'
   >> +'<soap:Header>'
   >> +'<brukersesjon:Brukersesjon>'
   >> +'<sesjonsid>' + %trim(session) + '</sesjonsid>'
   >> +'</brukersesjon:Brukersesjon>'
   >> +'</soap:Header>'
   >> +'<soap:Body>'
   >> +'<wa:hentOppdater xmlns:wa=' +'"' +
   >> %trim(WsTffAutoNs) + '">'
   >> +'<transkode>' + %trim(CTransK) + '</transkode>'
   >> +'<transkilde>0</transkilde>'
   >> +'<kjennemerke>' + %trim(CBILNR) + '</kjennemerke>'
   >> +'<avtaledato>' + %trim(Wadato) + '</avtaledato>'
   >> +'<erkleringsnr>' + %trim(Cenr) + '</erkleringsnr>'
   >> +'<navn>' + %trim(Cnavn) + '</navn>'
   >> +'<fodselOrgnr>' + %trim(Cpnr) + '</fodselOrgnr>'
   >> +'<regaar>' + %trim(Craar) + '</regaar>'
   >> +'<merkekode>' + %trim(Cfabr) + '</merkekode>'
   >> +'<merkenavn>' + %trim(Cmodel) + '</merkenavn>'
   >> +'<postnr>' + %trim(Cpost) + '</postnr>'
   >> +'<adresse>' + %trim(Cadr) + '</adresse>'
   >> +'<nasjonalitet>NOR</nasjonalitet>'
   >> +'<understellsnr>' + %trim(Custnr) + '</understellsnr>'
   >> +'<kjoeretoeyGruppe>' + %trim(Cktgrp) + '</kjoeretoeyGruppe>'
   >> +'<modell/>'
   >> +'<type/>'
   >> +'</wa:hentOppdater>'
   >> +'</soap:Body>'
   >> +'</soap:Envelope>';
   >>
   >> HTTP_setCCSIDs(1208: 0); // CCSID 1208 = UTF-8
   >>
   >> // Send Soap xml til InfoTorg Person.
   >> rc = http_url_post_xml(
   >> %trim(WsTffUrl)
   >> : %addr(SOAP) + 2
   >> : %len(SOAP)
   >> : *NULL
   >> : %paddr(Incoming)
   >> : *NULL
   >> : HTTP_TIMEOUT
   >>
   >>
   >> Best regards,
   >>
   >> Magne
   >>
   >> References
   >>
   >> 1. http://schemas.xmlsoap.org/soap/envelope/
   >>
   >>
   >>
   >>
   ----------------------------------------------------------------------
   --
   >>
   >>
   ----------------------------------------------------------------------
   -
   >> This is the FTPAPI mailing list. To unsubscribe, please go to:
   >> http://www.scottklement.com/mailman/listinfo/ftpapi
   >>
   ----------------------------------------------------------------------
   -
   >
   >---------------------------------------------------------------------
   --
   >This is the FTPAPI mailing list. To unsubscribe, please go to:
   >http://www.scottklement.com/mailman/listinfo/ftpapi
   >---------------------------------------------------------------------
   --
   >
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------