ksoap2 を介してパラメーターを渡すことをテストするための Web サービスを作成しました。かなり単純なプロセスのように思えましたが、単純なものが欠けているようです。Web サービスは、渡された整数を返すだけです。以下のコードを実行すると、1 ではなく数値 0 が返されます。
private static String SOAP_ACTION = "http://tempuri.org/TestParams";
private static String NAMESPACE = "http://tempuri.org/";
private static String METHOD_NAME = "TestParams";
private static String URL = "http://services.lockrem.com/WebService.asmx?WSDL";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("RoundId", 1);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
} catch (Exception e) {
e.printStackTrace();
}
SoapObject result = (SoapObject)envelope.bodyIn;
注: .net Web ページを使用してこれをテストしたところ、期待どおりに数値 1 が返されます。ここでは、Web サービスは問題ではありません。
こちらがウェブサービスです。
[WebMethod]
public int TestParams(int RoundId)
{
return RoundId;
}
助けてくれてありがとう。