[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: HTTPAPI - Problem consuming WCF web service - HTTP/1.1 400 Bad Request
Maybe that I am wrong or that I have over looked something but on my
opinion you did not specify enough information to analyze the problem. I am
missing:
a) the "tns:GetData" element as defined in the <types> section of the wsdl
file.
b) the namespace value that is associated to the "tns" namespace prefix
So far the only things that seem to be clear are:
a) the soap action value that you specified at http_url_post_xml()
b) the different host that you used at http_url_post_xml()
Nevertheless here are some potential errors with your xml request:
a) '<SOAP :Body>' should be '<SOAP:Body>'
b) <SOAP:Envelope'
' xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"'
' xmlns:tns="http://tempuri.org/ISafeActivationService/"'
should be
<SOAP:Envelope'
' xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"'
' xmlns:tns="http://tempuri.org/ISafeActivationService/">'
The proper request should look like this one:
SOAP =
'<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>'
+'<SOAP:Envelope'
+' xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"'
+' xmlns:tns="http://tempuri.org/ISafeActivationService/">'
+'<SOAP:Body>'
+'<tns:GetData>'
+'<tns:value>'+ %trim(int1) +'</tns:value>'
+'</tns:GetData>'
+'</SOAP:Body>'
+'</SOAP:Envelope>';
Thomas.
Am 13.09.2010 14:53, schrieb kmiller@xxxxxxxxx:
>
> I wrote a basic web service and was able to consume it fine. Then I wrote
> a WCF web service (Same basic code) and when I tryied to consume it,
> received the following error:
>
> HTTP/1.1 400 Bad Request
>
> I have attached the RPG code, the SVC file, and the error log. Can someone
> take a quick look to see if I have this set-up properly? Thanks!!
>
> Here is the relevent RPG code:
>
> SOAP =
> '<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>'
> +'<SOAP:Envelope'
> +' xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"'
> +' xmlns:tns="http://tempuri.org/ISafeActivationService/"'
> +'<SOAP :Body>'
> +'<tns:GetData>'
> +'<tns:value>'+ %trim(int1) +'</tns:value>'
> +'</tns:GetData>'
> +'</SOAP:Body>'
> +'</SOAP:Envelope>';
>
> http_debug(*ON);
>
> rc = http_url_post_xml(
> 'http://172.20.20.99/SafeActivationAPI/SafeActivation.svc/basic'
> : %addr(SOAP) + 2
> : %len(SOAP)
> : *NULL
> : %paddr(Incoming)
> : %addr(String)
> : HTTP_TIMEOUT
> : HTTP_USERAGENT
> : 'text/xml; charset=utf-8'
> : 'http://tempuri.org/ISafeActivationService/GetData');
>
>
> Here is the relevent xml from the SVC file:
>
> <wsdl:message name="ISafeActivationService_GetData_InputMessage">
> <wsdl:part name="parameters" element="tns:GetData" />
> </wsdl:message>
> -<wsdl:message name="ISafeActivationService_GetData_OutputMessage">
> <wsdl:part name="parameters" element="tns:GetDataResponse" />
> </wsdl:message>
> -<wsdl:message name="
> ISafeActivationService_GetDataUsingDataContract_InputMessage">
> <wsdl:part name="parameters" element="
> tns:GetDataUsingDataContract" />
> </wsdl:message>
> -<wsdl:message name="
> ISafeActivationService_GetDataUsingDataContract_OutputMessage">
> <wsdl:part name="parameters" element="
> tns:GetDataUsingDataContractResponse" />
> </wsdl:message>
> -<wsdl:portType name="ISafeActivationService">
> -<wsdl:operation name="GetData">
> <wsdl:input wsaw:Action="
> http://tempuri.org/ISafeActivationService/GetData" message="
> tns:ISafeActivationService_GetData_InputMessage" />
> <wsdl:output wsaw:Action="
> http://tempuri.org/ISafeActivationService/GetDataResponse"
> message="tns:ISafeActivationService_GetData_OutputMessage" />
> </wsdl:operation>
> -<wsdl:operation name="GetDataUsingDataContract">
> <wsdl:input wsaw:Action="
> http://tempuri.org/ISafeActivationService/GetDataUsingDataContract
> " message="
> tns:ISafeActivationService_GetDataUsingDataContract_InputMessage"
> />
> <wsdl:output wsaw:Action="
> http://tempuri.org/ISafeActivationService/GetDataUsingDataContractResponse
> " message="
> tns:ISafeActivationService_GetDataUsingDataContract_OutputMessage
> " />
> </wsdl:operation>
> </wsdl:portType>
> -<wsdl:binding name="WSHttpBinding_ISafeActivationService" type="
> tns:ISafeActivationService">
> <wsp:PolicyReference URI="
> #WSHttpBinding_ISafeActivationService_policy" />
> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
> />
> -<wsdl:operation name="GetData">
> <soap12:operation soapAction="
> http://tempuri.org/ISafeActivationService/GetData" style="
> document" />
> -<wsdl:input>
> <wsp:PolicyReference URI="
> #WSHttpBinding_ISafeActivationService_GetData_Input_policy" />
> <soap12:body use="literal" />
> </wsdl:input>
> -<wsdl:output>
> <wsp:PolicyReference URI="
> #WSHttpBinding_ISafeActivationService_GetData_output_policy" />
> <soap12:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> -<wsdl:operation name="GetDataUsingDataContract">
> <soap12:operation soapAction="
> http://tempuri.org/ISafeActivationService/GetDataUsingDataContract
> " style="document" />
> -<wsdl:input>
> <wsp:PolicyReference URI="
> #WSHttpBinding_ISafeActivationService_GetDataUsingDataContract_Input_policy
> " />
> <soap12:body use="literal" />
> </wsdl:input>
> -<wsdl:output>
> <wsp:PolicyReference URI="
> #WSHttpBinding_ISafeActivationService_GetDataUsingDataContract_output_policy
> " />
> <soap12:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> -<wsdl:binding name="BasicHttpBinding_ISafeActivationService" type="
> tns:ISafeActivationService">
> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
> -<wsdl:operation name="GetData">
> <soap:operation soapAction="
> http://tempuri.org/ISafeActivationService/GetData" style="
> document" />
> -<wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> -<wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> -<wsdl:operation name="GetDataUsingDataContract">
> <soap:operation soapAction="
> http://tempuri.org/ISafeActivationService/GetDataUsingDataContract
> " style="document" />
> -<wsdl:input>
> <soap:body use="literal" />
> </wsdl:input>
> +<wsdl:output>
> <soap:body use="literal" />
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> -<wsdl:service name="SafeActivationService">
> -<wsdl:port name="WSHttpBinding_ISafeActivationService" binding="
> tns:WSHttpBinding_ISafeActivationService">
> <soap12:address location="
> http://745kmiller/SafeActivationAPI/SafeActivation.svc" />
> -<wsa10:EndpointReference>
> <wsa10:Address>
> http://745kmiller/SafeActivationAPI/SafeActivation.svc</
> wsa10:Address>
> -<Identity xmlns="
> http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
> <Dns>localhost</Dns>
> </Identity>
> </wsa10:EndpointReference>
> </wsdl:port>
> -<wsdl:port name="BasicHttpBinding_ISafeActivationService" binding
> ="tns:BasicHttpBinding_ISafeActivationService">
> <soap:address location="
> http://745kmiller/SafeActivationAPI/SafeActivation.svc/basic" />
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
>
> Here is the log output
>
> HTTPAPI Ver 1.23 released 2008-04-24
> OS/400 Ver V5R4M0
>
> New iconv() objects set, PostRem=819. PostLoc=0. ProtRem=819. ProtLoc=0
> http_persist_open(): entered
> http_long_ParseURL(): entered
> DNS resolver retrans: 2
> DNS resolver retry : 2
> DNS resolver options: x'00000136'
> DNS default domain: PRI.COM
> DNS server found: 172.20.20.93
> http_persist_post(): entered
> http_long_ParseURL(): entered
> do_post(): entered
> POST /SafeActivationAPI/SafeActivation.svc/basic HTTP/1.1
> Host: 172.20.20.99
> User-Agent: http-api/1.23
> Content-Type: text/xml; charset=utf-8
> SOAPAction: http://tempuri.org/ISafeActivationService/GetData
> Expect: 100-continue
> Content-Length: 291
>
>
> recvresp(): entered
> HTTP/1.1 100 Continue
> Server: Microsoft-IIS/5.1
> Date: Fri, 10 Sep 2010 19:33:10 GMT
> X-Powered-By: ASP.NET
>
>
> SetError() #13: HTTP/1.1 100 Continue
> senddoc(): entered
> <?xml version="1.0" encoding="iso-8859-1" standalone="no"?><SOAP:Envelope
> xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="
> http://tempuri.org/ISafeActivationService/"<SOAP :Body> <tns:GetData>
> <tns:value>7</tns:value> </tns:GetData></SOAP:Body></SOAP:Envelope>
> recvresp(): entered
> HTTP/1.1 400 Bad Request
> Server: Microsoft-IIS/5.1
> Date: Fri, 10 Sep 2010 19:33:10 GMT
> X-Powered-By: ASP.NET
> X-AspNet-Version: 2.0.50727
> Cache-Control: private
> Content-Length: 0
>
>
> SetError() #13: HTTP/1.1 400 Bad Request
> recvdoc parms: identity 0
> header_load_cookies() entered
> recvdoc(): entered
> SetError() #0:
> SetError() #13: HTTP/1.1 400 Bad Request
> http_close(): entered
>
>
>
>
>
>
> -----------------------------------------------------------------------
> 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
-----------------------------------------------------------------------