0

私は、soapaction = "" の wsdl を持つ SOAP Web サービスから提供されました。

<wsdl:binding name="SimpleSearchRequestSoapBinding" type="impl:SimpleSearchRequest">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getSearchResults"><wsdlsoap:operation **soapAction=""**/>
<wsdl:input name="getSearchResultsRequest">
<wsdlsoap:body use="literal"/></wsdl:input>
<wsdl:output name="getSearchResultsResponse">
<wsdlsoap:body use="literal"/></wsdl:output>
</wsdl:operation>

次のように Web サービスをヒットします。

SoapObject request = new SoapObject(OKMConstants.NAMESPACE, OKMConstants.OPERATION_NAME);        
             request.addProperty("searchParam","faq");

             SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
             soapEnvelope.setOutputSoapObject(request);

             HttpTransportSE httpTransport = new HttpTransportSE(OKMConstants.url);

                         httpTransport.call("", soapEnvelope);        
        //   Object response =  soapEnvelope.getResponse();

             SoapObject result = (SoapObject)soapEnvelope.bodyIn;

しかし、例外をスローします:

org.xmlpull.v1.XmlPullParserException: Expected a quoted string (position:DOCDECL @1:62 in java.io.InputStreamReader@410b9d60) 
4

2 に答える 2

1

soapAction null(ksoap2 によって空の文字列として設定されます) を渡すか、空の文字列を引用符で囲んで渡す必要があります。 httpTransport.call("\"\"", soapEnvelope);

于 2013-08-19T17:04:57.320 に答える
0

httpTransport.call(SOAPACTION,soapEnvelope);

この行が問題である可能性があると思います。代わりに、call メソッドで soapAction を使用してみてください。

于 2013-08-14T09:58:11.957 に答える