Error with HTTP Header in V1.53

Discussions related to HTTPAPI (An HTTP Client Package for RPG programming.) http://www.scottklement.com/httpapi/
Post Reply
kwengert
Posts: 3
Joined: Fri Apr 15, 2022 5:51 pm

Error with HTTP Header in V1.53

Post by kwengert »

Good Morning,

First of all, thank you Scott for creating this great API. I've been using it for about 10 years at several of my clients.

One of my clients is updating their WMS, and I need to update my interface to make that work. As I was doing this, I decided it was time to update to your latest release of HTTPAPI. In doing that, I have found a problem where the SOAPaction on the http_url_post_stmf is being truncated to 64 characters. In reseaching this in the HTTPAPI_H member, I see that the original length of that variable was 64 characters. I'm not sure if did something wrong with the installation or if there is actually a problem in the new version.

Here is the code:

Code: Select all

          //  Post Assignments
          rc = http_url_post_stmf(%Trim(URL)
                            : wFile
                            : wResponse
                            : HTTP_TIMEOUT
                            : HTTP_USERAGENT
                            : 'text/xml; charset=utf-8'
                            : 'http://SelectorPro.SAESystems.com/Import/' +
                               'IImportService/ImportAssignments');
Here is the debug log from V1.53

Code: Select all

HTTPAPI Ver 1.53 released 2025-10-15
NTLM Ver 1.4.0 released 2014-12-22
OS/400 Ver V7R4M0

New iconv() objects set, PostRem=819. PostLoc=0. ProtRem=819. ProtLoc=0
http_url_post_stmf(): entered
getting post file size...
opening file to be sent...
opening file to be received
http_persist_open(): entered
http_long_ParseURL(): entered
DNS resolver retrans: 2
DNS resolver retry  : 2
DNS resolver options: x'000001B6'
DNS default domain: MAINES.NET
DNS server found: 10.1.2.35
Nagle's algorithm (TCP_NODELAY) disabled.
http_persist_post(): entered
http_persist_req(POST) entered.
http_long_ParseURL(): entered
http_long_ParseURL(): entered
do_oper(POST): entered
There are 0 cookies in the cache
POST /selectorpro/importservice/soap11 HTTP/1.1
Host: 10.1.2.111:8000
User-Agent: http-api/1.43
Content-Type: text/xml; charset=utf-8
SOAPAction: http://SelectorPro.SAESystems.com/Import/IImportService/ImportAs
Content-Length: 9873


sendraw(): entered

<Soap document inserted here>

recvresp(): entered
HTTP/1.1 500 Internal Server Error
Content-Length: 762
Content-Type: text/xml; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 07 Nov 2025 20:27:42 GMT


SetError() #13: HTTP/1.1 500 Internal Server Error
recvresp(): end with 500
recvdoc parms: identity 762
header_load_cookies() entered
recvdoc(): entered
SetError() #0:
recvdoc(): Receiving 762 bytes.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode><faultstring xml:lang="en-US">The message with Action 'http://SelectorPro.SAESystems.com/Import/IImportService/ImportAs' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring></s:Fault></s:Body></s:Envelope>
SetError() #13: HTTP/1.1 500 Internal Server Error
http_close(): entered
Here is debug log from the version running in production for the last 9 years:

Code: Select all

HTTPAPI Ver 1.31 released 2016-02-03
NTLM Ver 1.4.0 released 2014-12-22
OS/400 Ver V7R4M0

http_url_post_stmf(): entered
getting post file size...
opening file to be sent...
opening file to be received
http_persist_open(): entered
http_long_ParseURL(): entered
DNS resolver retrans: 2
DNS resolver retry  : 2
DNS resolver options: x'000001B6'
DNS default domain: MAINES.NET
DNS server found: 10.1.2.35
Nagle's algorithm (TCP_NODELAY) disabled.
http_persist_post(): entered
http_persist_req(POST) entered.
http_long_ParseURL(): entered
http_long_ParseURL(): entered
do_oper(POST): entered
There are 0 cookies in the cache
POST /selectorpro/importservice/soap11 HTTP/1.1
Host: 10.1.2.111:8000
User-Agent: http-api/1.43
Content-Type: text/xml; charset=utf-8
SOAPAction: http://SelectorPro.SAESystems.com/Import/IImportService/ImportAssignments
Content-Length: 51676


sendraw(): entered

<Soap document inserted here>

recvresp(): entered
HTTP/1.1 200 OK
Content-Length: 350
Content-Type: text/xml; charset=utf-8
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 31 Jul 2025 15:48:29 GMT


SetError() #13: HTTP/1.1 200 OK
recvresp(): end with 200
recvdoc parms: identity 350
header_load_cookies() entered
recvdoc(): entered
SetError() #0:
recvdoc(): Receiving 350 bytes.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><ImportAssignmentsResponse xmlns="http://SelectorPro.SAESystems.com/Import"><ImportAssignmentsResult><Results><ValidCount>4</ValidCount><AssignmentCount>4</AssignmentCount><FailedAssignments/></Results></ImportAssignmentsResult></ImportAssignmentsResponse></s:Body></s:Envelope>
http_close(): entered
Any help you can give me would be greatly appreciated.

Thanks,
Kevin Wengert - Kinetix Software Solutions
Post Reply