を送信:Javaはこんにちは、私はこのようしようとしている、文字列のXMLにリクエストを送信必要なXML文字列
final String SOAP_ACTION = "http://tempuri.org/Search";
final String METHOD_NAME = "Search";
final String NAME_SPACE = "http://tempuri.org/";
final String URL = "https://www.url.com/xxx/xxx.asmx?wsdl";
String XML = "<data><id>"+ paramId +"</id><phone>"+ paramPhone +"</phone></data>";
SoapObject request = new SoapObject(NAME_SPACE, METHOD_NAME);
request.addProperty("", XML); //I don't know how to pass it here
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(URL);
try {
httpTransport.call(SOAP_ACTION, envelope);
Object res = envelope.getResponse();
if (res instanceof SoapPrimitive) {
return (((SoapPrimitive) res).toString());
}
return String.valueOf(res);
} catch (IOException | XmlPullParserException ex) { }
をしかし、私はこのエラーを取得しています:事前に
SoapFault - faultcode:
'soap:Server' faultstring: 'Server was unable to process request.
---> Object reference not set to an instance of an object.'
faultactor: 'null' detail: [email protected]
感謝を。
*:?*あなたは 'wsdl' URLにSOAPメッセージを送信しません。 '?wsdl' URLは、WebサービスエンドポイントのWSDLを取得するために使用されます。 – Andreas
サーバーからNullPointerException(または同等のもの)が発生したというエラーメッセージがサーバーから受信しています。詳細については、サーバーコードおよび/またはログファイルを確認する必要があります。 – Andreas
* FYI:*あなたがXMLエスケープを自分で処理しない限り、文字列連結を使用してXMLを構築することは本当に悪い考えです。誰かが自分の電話番号に '<'を入力すると、悪いXMLで終わるでしょう。確かに、電話番号の検証ロジックはそれを守るかもしれないが、あなたはいつもそれに頼ることはできない。 – Andreas