|
How do you have your open function prototyped?
----------------------------------------------------------------------
--
*From: *"Scott Klement" <rpg400-l@xxxxxxxxxxxxxxxx>
*To: *"RPG programming on the IBM i (AS/400 and iSeries)"
<rpg400-l@xxxxxxxxxxxx>
*Cc: *tegger@xxxxxxxxxxx
*Sent: *Friday, July 12, 2013 12:46:05 PM
*Subject: *Re: http_url_post_xml and REST
This won't work properly with CCSID 1208, since you are specifying
code pages (which was a limitation of the IFS in V4R5 and earlier, but
with
V5R1 CCSID support was added.) Also, I would recommend using
O_TEXT_CREAT and eliminating the "two opens" scenario.. the "two opens"
situation would work fine if you're targeting the root or QOpenSys
file system, but does not work with, for example, /QNTC. Best
practice is to use O_TEXT_CREAT if you are targeting V5R2 or later.
It's also very strange that you are granting execute permission to the
file -- this allows QShell or PASE shells to run your XML document as
a shell script -- which doesn't make any sense at all.
Here's what I would do (requires V5R2 or later):
flags = O_RDWR + O_CREAT + O_TRUNC + O_TEXTDATA
+ O_CCSID + O_TEXT_CREAT;
mode = S_IRUSR + S_IWUSR + S_IRGRP + S_IWGRP
+ S_IROTH;
fd = open( %trimr(filename): flags: mode: 1208 0);
O_CCSID gives it support for CCSIDs (vs O_CODEPAGE which only supports
code pages) and O_TEXT_CREAT eliminates the need to open the file,
close it, and then re-open it. The additional parameter to open()
tells which CCSID to translate from, so in my example, I used the
special value of 0=Job CCSID. So it'll translate from the job's CCSID
to 1208 (which is
UTF-8)
-SK
On 7/12/2013 11:31 AM, tegger@xxxxxxxxxxx wrote:
>
>
> I found the issue with writing the IFS file using codepage=1028...
>
>
>
> flags=O_RDWR+O_CREAT+O_TRUNC+O_TEXTDATA+O_CODEPAGE;
> mode=S_IRWXU+S_IRWXG+S_IROTH+S_IXOTH;
> codepage=819; // 437 or 819 1208-UTF-8
> fd=open(%trim(filename):flags:mode:codepage);
> callp close(fd);
>
> flags=O_RDWR+O_TEXTDATA;
> fd=open(%trim(filename):flags);
>
>
>
> The last calls to the flags needed to just be O_RDWR.
>
> Changing to 1208 on the write didn't make a difference. I still get
the same error. I'm trying to get up with the technical people on the
other end to see what was actually received to trigger the error. So
far, no luck.
>
>
>
>
>
>
>
> ----- Original Message -----
>
>
> From: "Scott Klement" <rpg400-l@xxxxxxxxxxxxxxxx>
> To: "RPG programming on the IBM i (AS/400 and iSeries)"
<rpg400-l@xxxxxxxxxxxx>
> Sent: Friday, July 12, 2013 12:26:49 PM
> Subject: Re: http_url_post_xml and REST
>
> Jay,
>
> 1208 isn't a code page, it's a CCSID. UTF-8 is much more than
just a
> single code page.
>
> When you say "nothing gets written", this sounds an awful lot like
a
> coding error. Can you show us how you're writing this XML?
>
> Having said that, I can't see why using 1208 vs 819 would have any
> impact on the specific error you're getting. I agree that 1208 is
> better, mind you -- but I don't think it'll be the solution to the
> immediate problem.
>
> -SK
>
>
> On 7/12/2013 8:36 AM, tegger@xxxxxxxxxxx wrote:
>>
>>
>> I tried the 1208 codepage for the creation of the XML file. The
problem is that nothing gets written to the IFS file when set this way.
>>
>>
>>
>>
>>
>>
>>
>> ----- Original Message -----
>>
>>
>> From: "thomas raddatz" <thomas.raddatz@xxxxxx>
>> To: rpg400-l@xxxxxxxxxxxx
>> Sent: Friday, July 12, 2013 2:28:14 AM
>> Subject: Re: http_url_post_xml and REST
>>
>>
>> Even if the file looks fine on your PC and is displayed nicely in
Firefox
>> and IE, I would create it with codepage 1208, which is UTF-8.
Codepage 819
>> matches ISO-8859-1 of the west European languages.
>>
>> Procedure http_url_post_stmf() does not do any character
translation and
>> therefore there is no other option (beside the codepage of the
stmf) to
>> change the codepage.
>>
>> Thomas.
>>
>>
>> rpg400-l-bounces@xxxxxxxxxxxx schrieb am 11.07.2013 20:48:18:
>>
>>> Von: tegger@xxxxxxxxxxx
>>> An: rpg400-l@xxxxxxxxxxxx,
>>> Datum: 11.07.2013 20:48
>>> Betreff: Re: http_url_post_xml and REST
>>> Gesendet von: rpg400-l-bounces@xxxxxxxxxxxx
>>>
>>>
>>>
>>> The XML is created on the IFS using codepage 819.
>>>
>>> When it is downloaded to a PC, everything looks file. If I load
it
>>> to IE or FIREFOX, everything comes up perfectly.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> ----- Original Message -----
>>>
>>>
>>> From: tegger@xxxxxxxxxxx
>>> To: "RPG programming on the IBM i (AS/400 and iSeries)" <rpg400-
>>> l@xxxxxxxxxxxx>
>>> Sent: Thursday, July 11, 2013 2:17:57 PM
>>> Subject: Re: http_url_post_xml and REST
>>>
>>>
>>>
>>> Now that's a possibility.
>>>
>>>
>>>
>>> What's the best way to force the encoding?
>>>
>>>
>>>
>>>
>>>
>>> ----- Original Message -----
>>>
>>>
>>> From: "thomas raddatz" <thomas.raddatz@xxxxxx>
>>> To: rpg400-l@xxxxxxxxxxxx
>>> Sent: Thursday, July 11, 2013 2:44:21 AM
>>> Subject: Re: http_url_post_xml and REST
>>>
>>>
>>> For me the error message implies that you do not send the XML in
UTF-8
>> but
>>> any other encoding. That way the server can not find the "<"
character
>> at
>>> the first position of the XML.
>>>
>>> The error message:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?><error>XML Error:
Fatal
error:
>>> Start tag expected, '<' not found at :1.</error>
>>>
>>> What the server tries to read:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <service_orders>
>>>
>>> Because of the wrong encoding it can not find the "<" of "<?xml ...".
>>>
>>> Nothing more than a guess.
>>>
>>> Thomas.
>>>
>>> rpg400-l-bounces@xxxxxxxxxxxx schrieb am 10.07.2013 21:53:58:
>>>
>>>> Von: tegger@xxxxxxxxxxx
>>>> An: rpg400-l@xxxxxxxxxxxx,
>>>> Datum: 10.07.2013 21:54
>>>> Betreff: Re: http_url_post_xml and REST
>>>> Gesendet von: rpg400-l-bounces@xxxxxxxxxxxx
>>>>
>>>>
>>>>
>>>> I have that in there. Thanks though!
>>>>
>>>> I hard coded it just during my original attempts to get it running.
>>>>
>>>>
>>>>
>>>> It's running now. Just have an error with the XML (or their
server
>>>> says there's an error).
>>>>
>>>>
>>>>
>>>> I was looking in the httpapi_debug.txt file and noticed that the
>>>> filename line is missing a double quote at the end of the filename.
>>>> I doubt that is causing my issue...
>>>>
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?><error>XML Error: Fatal error:
>>>> Start tag expected, '<' not found at :1.</error>
>>>>
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <service_orders>
>>>> <service_order>
>>>> <number>1-610615B</number>
>>>> <account>2311960</account>
>>>> <service_type>Delivery</service_type>
>>>> <customer>
>>>> <customer_id>2311960</customer_id>
>>>> <first_name>HENRY</first_name>
>>>> <last_name>MILLER</last_name>
>>>> <phone1>301-555-1212</phone1>
>>>> <phone2>301-555-1213</phone2>
>>>> <address1>SOME STREET</address1>
>>>> <city>BOWIE</city>
>>>> <state>MD</state>
>>>> <zip>20716</zip>
>>>> </customer>
>>>> <items>
>>>> <item>
>>>> <sale_sequence>1</sale_sequence>
>>>> <item_id>1055746</item_id>
>>>> <serial_number>001999188</serial_number>
>>>> <description><![CDATA[P992050BD SOFA PAULA DEEN SOLITUDE 09/CW
BRO
>>>> NCO 31/BOL LENA 22/PIL RE]]></description>
>>>> <quantity>1</quantity>
>>>> <location>Warehouse#1</location>
>>>> <cube>3</cube>
>>>> <price>1334.95</price>
>>>> <countable>1</countable>
>>>> </item>
>>>> </items>
>>>> <cube>1</cube>
>>>> <pieces>1</pieces>
>>>> <delivery_date>7/09/2014</delivery_date>
>>>> </service_order>
>>>> </service_orders>
>>>>
>>>>
>>>>
>>>> ----- Original Message -----
>>>>
>>>>
>>>> From: "Scott Klement" <rpg400-l@xxxxxxxxxxxxxxxx>
>>>> To: "RPG programming on the IBM i (AS/400 and iSeries)" <rpg400-
>>>> l@xxxxxxxxxxxx>
>>>> Sent: Wednesday, July 10, 2013 2:39:02 PM
>>>> Subject: Re: http_url_post_xml and REST
>>>>
>>>> Jay,
>>>>
>>>> I know you've gotten past this point already, but... one tip for
you
>>>> with regard to the following code:
>>>>
>>>>>
>>>>> if (rc <> 1);
>>>>> msg = http_error(err);
>>>>> dsply msg;
>>>>> if err<>36;
>>>>> callp http_crash();
>>>>> return;
>>>>> endif;
>>>>> exsr $getPassword;
>>>>> endif;
>>>>
>>>>
>>>> There are named constants in HTTPAPI_H for each error number.
So
>>>> instead of coding err<>36, you could code err<>HTTP_NDAUTH.
This is
>>>> just easier to read... HTTP_NDAUTH visually looks like 'Need
>>>> Authentication", whereas it's hard to say what '36' means. Even
I
>>>> didn't know what it was without looking it up...
>>>>
>>>> It's just a small tip, though... what you have will work okay,
it's
>> just
>>>
>>>> not as nice to read.
>>>> --
>>>> This is the RPG programming on the IBM i (AS/400 and iSeries)
>>>> (RPG400-L) mailing list
>>>> To post a message email: RPG400-L@xxxxxxxxxxxx
>>>> To subscribe, unsubscribe, or change list options,
>>>> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
>>>> or email: RPG400-L-request@xxxxxxxxxxxx
>>>> Before posting, please take a moment to review the archives
>>>> at http://archive.midrange.com/rpg400-l.
>>>>
>>>> --
>>>> This is the RPG programming on the IBM i (AS/400 and iSeries)
>>>> (RPG400-L) mailing list
>>>> To post a message email: RPG400-L@xxxxxxxxxxxx
>>>> To subscribe, unsubscribe, or change list options,
>>>> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
>>>> or email: RPG400-L-request@xxxxxxxxxxxx
>>>> Before posting, please take a moment to review the archives
>>>> at http://archive.midrange.com/rpg400-l.
>>>>
>>>
>>>
>>> --
>>> IMPORTANT NOTICE:
>>> This email is confidential, may be legally privileged, and is for
the
>>> intended recipient only. Access, disclosure, copying,
distribution, or
>>> reliance on any of it by anyone else is prohibited and may be a
criminal
>>
>>> offence. Please delete if obtained in error and email
confirmation
>>> to the sender.
>>> --
>>> This is the RPG programming on the IBM i (AS/400 and iSeries)
>>> (RPG400-L) mailing list
>>> To post a message email: RPG400-L@xxxxxxxxxxxx
>>> To subscribe, unsubscribe, or change list options,
>>> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
>>> or email: RPG400-L-request@xxxxxxxxxxxx
>>> Before posting, please take a moment to review the archives
>>> at http://archive.midrange.com/rpg400-l.
>>>
>>> --
>>> This is the RPG programming on the IBM i (AS/400 and iSeries)
>>> (RPG400-L) mailing list
>>> To post a message email: RPG400-L@xxxxxxxxxxxx
>>> To subscribe, unsubscribe, or change list options,
>>> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
>>> or email: RPG400-L-request@xxxxxxxxxxxx
>>> Before posting, please take a moment to review the archives
>>> at http://archive.midrange.com/rpg400-l.
>>>
>>> --
>>> This is the RPG programming on the IBM i (AS/400 and iSeries)
>>> (RPG400-L) mailing list
>>> To post a message email: RPG400-L@xxxxxxxxxxxx
>>> To subscribe, unsubscribe, or change list options,
>>> visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
>>> or email: RPG400-L-request@xxxxxxxxxxxx
>>> Before posting, please take a moment to review the archives
>>> at http://archive.midrange.com/rpg400-l.
>>>
>>
>>
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.