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

RE: Fw: HTTPAPI ver 1.13.1



Iconv() is a system API so there’s no way to step through the source… somebody please correct me if I’m wrong!

 


From: owner-ftpapi@xxxxxxxxxxxxx [mailto:owner-ftpapi@xxxxxxxxxxxxx] On Behalf Of Dana.Anderson@xxxxxxxxxxxxxxxxxxx
Sent: Friday, April 07, 2006 9:26 AM
To: ftpapi@xxxxxxxxxxxxx
Subject: Re: Fw: HTTPAPI ver 1.13.1

 


Good Mornign All,

I have done some debugging and I think I have narrowed the problem down to the following:  Before the call to procedure
" callp     iconv( ToASCII . . . " peSize = 230.  I added a work variable WrkpeData.  Before the call to iconv the values of peData is:

POST /ivatengineservice/engineservice.asmx HTTP/1.1
Host: nt124a131
User-Agent: http-api/1.15
Content-Type: text/xml; charset=utf-8
SOAPAction: http://tempuri.org/AnalyseDocument
Expect: 100-continue
Content-Length: 2873

After the call to iconv, Size and OutSize are "0" and peData is blank.  

In debug mode I cannot step into the procedure iconv to see what is happenning.  Since the peData is blanks, I feel that is what is causing
the error messge"SetError() #13: HTTP/1.1 400 Bad Request".

How do I step into the iconv subroutine to see what is happenning?  Any suggestions?  (Also, a word to note, I am connecting to a web service that is located in our intranet.)

Thanks,  Dana



 *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 * CCSIDxlate():  Translate data from ASCII <--> EBCDIC        
 *                using a pointer to the data.                
 *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
P CCSIDxlate      B                                            
D CCSIDxlate      PI            10I 0                          
D   peSize                      10I 0 value                    
D   peData                        *   value                    
D   peDirection                  1A   const                    
                                                               
D Size            s             10U 0                          
D OutSize         s             10U 0                          
D WrkpeData       s          32767A   Varying                  
                                                               
 /if not defined(HTTP_USE_TABLES)                              
                                                               
c                   if        Tables_Set = *OFF                
c                   if        HTTP_SetCCSIDs( HTTP_ASCII        
c                                           : HTTP_EBCDIC ) < 0
c                   return    -1                                
c                   endif                                      
c                   endif                                      
                                                               
c                   eval      Size = peSize                    
c                   eval      OutSize = peSize                  
                                                               
c                   eval      WrkpeData = %str(peData)          
c                   if        peDirection = TO_ASCII            
c                   callp     iconv( ToASCII                    
c                                  : peData                    
c                                  : Size                      
c                                  : peData                    
c                                  : OutSize )                  
c                   else                                        
c                   callp     iconv( ToEBCDIC                  
c                                  : peData            
c                                  : Size              
c                                  : peData            
c                                  : OutSize )        
c                   endif                              
c                   eval      WrkpeData = %str(peData)
                                                       
 /endif                                                
                                                       
c                   return    0                        
P                 E                                    





Scott Klement <sk@xxxxxxxxxxxxxxxx>
Sent by: owner-ftpapi@xxxxxxxxxxxxx

04/06/2006 11:36 AM

Please respond to
ftpapi@xxxxxxxxxxxxx

To

ftpapi@xxxxxxxxxxxxx

cc

 

Subject

Re: Fw: HTTPAPI ver 1.13.1

 

 

 




Sender: Scott Klement <sk@xxxxxxxxxxxxxxxx>


Hi Dana,

If you look at the debug log (or, call HTTP_Error() to get an error
message) you'll see that HTTPAPI is returning the following error message:

"400 Bad Request".

This is an error message that the HTTP server is sending you -- it's not
HTTPAPI generating the error, it's the server.  All HTTPAPI does is relay
it to you.

According to the HTTP standards, The message means that the server didn't
like the HTTP request that was sent.  I'm NOT speaking from experience,
however, that's just what the docs say.  I've never received this error in
my life.

Here's what the HTTP request looks like, according to your debug log:

POST /ivatengineservice/engineservice.asmx HTTP/1.1
Host: nt124a131
Content-Type: text/xml; charset=US-ASCII
SOAPAction: "http://tempuri.org/AnalyseDocument"
Expect: 100-continue
Content-Length: 2875

A few things strike me as odd about this:

a) There's no user-agent field.

b) The content type claims character set US-ASCII, but elsewhere in the
debug log it says:
      <?xml version="1.0" encoding="utf-8"?>
    and
       New iconv() objects set, ASCII=819. EBCDIC=0":

Seems to me that both the content-type and <?xml> tag should say
ISO-8859-1, since that's what CCSID 819 is.

c) The Host: field doesn't have a domain attached to the host name.

d) The SOAPAction: field has quotes around it, and points to a different
domain than the Host: field does.


Now, I don't know which of these (if any) is causing the problem. These
are just what stands out about your document.

---
Scott Klement  http://www.scottklement.com



On Thu, 6 Apr 2006, Dana.Anderson@xxxxxxxxxxxxxxxxxxx wrote:

> Hi Scott,
>
> Thanks for the info on the debug.
>
> I have attached a debug log.  The XML itself does work.  A Delphi tool was
> developed in house by someone else to test the XML against the web
> service.  So I know the XML string for the document works.
>
> The POST information was supplied to me by the Web Service.  The only
> difference is the "Expect: 100-continue" section.  But it fails with or
> without it.
>
> How does the "encoding attribute' affect things?  Again, the value of
> "utf-8" was supplied to me by the Web Service vendor.  I have tried the
> program with both of the following strings and both have received an
> error"
>
> Content-Type: text/xml; charset=utf-8
> Content-Type: text/xml; charset=US-ASCII
>
> Would you be able to steer me in a direction here?  Is there anything that
> may jump out at you?
>
> Thansk Much,
>
> Dana Anderson
> Patterson Companies
> St. Paul, MN
>
>
>
>
>
>
> Scott Klement <sk@xxxxxxxxxxxxxxxx>
> Sent by: owner-ftpapi@xxxxxxxxxxxxx
> 04/05/2006 05:56 PM
> Please respond to
> ftpapi@xxxxxxxxxxxxx
>
>
> To
> "'ftpapi@xxxxxxxxxxxxx'" <ftpapi@xxxxxxxxxxxxx>
> cc
>
> Subject
> Re: Fw: HTTPAPI ver 1.13.1
>
>
>
>
>
>
> Sender: Scott Klement <sk@xxxxxxxxxxxxxxxx>
>
>
>> I have a question:  I installed it fine and am working through the
>> process.  I am getting a -1 back from the Send() function call in the
>> CommTCP_BlockWrite procedure.  I can't locate the source for the "Send"
>> procedure and was trying to find it in order to debug the process.  Is
>> this an object that is even available for viewing?
>
> send() is part of the operating system (OS/400 or i5/OS).
>
> Instead of telling us that send() is returning -1 (which may not even be
> an error!) can you please create a debug log and tell us what you find in
> it?  (Or, post the log here?)
>
> To do that, insert the following to your program before it calls HTTPAPI:
>
>     http_debug(*ON);
>
>
>>
>> Anything look odd to you below?
>
> Sure, there are a few odd things:
>
> a) You've specified the encoding as "utf-8" but as far as I can tell,
> it's not.  Unless you've modified the way HTTPAPI works, it doesn't
> convert from EBCDIC to UTF-8, it converts from EBCDIC to ISO-8859-1.
>
> b) Your XML code is missing all of the + (concatenation) characters needed
>
> to create an XML document in an EVAL statement.  So your code wouldn't
> even compile.
>
> But none of these would cause a problem with the send() API.  Please post
> the debug log, or at the very least, call the http_error() subprocedure to
>
> get an error message.  As it stands, I don't have enough information to
> help you.
>
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list.  To unsubsribe from the list send mail
> to majordomo@xxxxxxxxxxxxx with the body: unsubscribe ftpapi mymailaddr
> -----------------------------------------------------------------------
>
>
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubsribe from the list send mail
to majordomo@xxxxxxxxxxxxx with the body: unsubscribe ftpapi mymailaddr
-----------------------------------------------------------------------