私はKsoapライブラリを使用してWebサービスからxmlを読み取ります。以下は私が使用した私のコードです:
private static String SOAP_ACTION_Transaction = "http://tempuri.org/Trackdata";
private static String NAMESPACE_Transaction= "http://tempuri.org/";
private static String METHOD_NAME_Transaction = "Trackdata";
private static String URL_Transaction = "https://devraj.charge.com/process/getAndroidData.asmx?WSDL";
asyn タスクを使用して showdetails() メソッドを呼び出しています。
public void showdetails()
{
String result = "";
SoapObject resultRequestSOAP = null;
SoapObject resultRequestSOAPbody =null;
SoapObject request = new SoapObject(NAMESPACE_Transaction, METHOD_NAME_Transaction);
request.addProperty("Type","payment");
request.addProperty("Id",53);
request.addProperty("amount","0.02");
request.addProperty("CCExpMonth",11);
request.addProperty("CCExpYear",22);
request.addProperty("Source","gg");
request.addProperty("profileId",748);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL_Transaction);
androidHttpTransport.debug = true;
try
{
androidHttpTransport.call(SOAP_ACTION_Transaction, envelope);
String requestDumpString = androidHttpTransport.requestDump;
System.out.println("requestDump : " + requestDumpString);
resultRequestSOAP = (SoapObject) envelope.getResponse(); // Output received
result = resultRequestSOAP.getProperty(0).toString(); // Result string
System.out.println("OUTPUT : " + result);
} catch (Exception e) {
e.printStackTrace();
}
}
ただし、次のエラーが発生します。
SoapFault - faultcode: 'soap:Server' faultstring: 'System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.NullReferenceException: Object reference not set to an instance of an object.
このステートメントでは、次のようになります。他のWebサービスも解析しましたが、問題なく動作しましたが、このエラーが発生しています。以下は私のxmlデータの一部です:
<?xml version="1.0" encoding="utf-8"?>
<ClsProcessData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<ProfileId>748</ProfileId>
<Id>53</MerchantId>
<InvoiceNum>53-375</InvoiceNum>
<InvoiceDescription />
<amount>0.02</InvoiceAmount>
<CCName />
</ClsProcessData>
誰かが私にエラーを教えてくれれば感謝します。