SOAPバージョン11のksoap2ライブラリ(v2.6.4)を使用して、2.3.3エミュレータデバイス経由でWebサービスを実行しています。サーバーは、要求されたアクションを認識し、期待される応答を提供します。 (サーバ側でデバッグ)HTTP/1.1ヘッダには以下が含まれています。Android 2.2 vs 2.3 - HTTPヘッダーのsoapactionとSOAPAction
同じアプリケーションを起動しようとするとUser-Agent: ksoap2-android/2.6.0+
SOAPAction: myAction
Content-Type: text/xml;charset=utf-8
Connection: close
Content-Length: 1481
Host: xxx.xxx.xxx.xxx
Accept-Encoding: gzip
- すべては、(ITの世界ではそのようなことがあります場合は)同じ同じソースでありますライブラリ、SOAP設定、リクエスト、サーバなどが含まれていますが、今回は2.2エミュレータデバイス上にあります。サーバーは、要求からSOAPActionが欠落していると主張する要求を拒否します。ログは、この要求は、次のHTTPヘッダで来たことを示しています
user-agent: ksoap2-android/2.6.0+
soapaction: myAction
content-type: text/xml;charset=utf-8
connection: close
content-length: 1481
Host: xxx.xxx.xxx.xxx
だから、(ヘッダの他の部分の間)のSOAPActionは小文字のパラメータとして届きます。サーバーは小文字の「soapaction」を認識せず、自分の要求を拒否します。 Android 2.2以降でこのアプリケーションが必要です
どこから始めたらいいですか?
EDIT:これはSOAPリクエストを送信する方法です。それが助けであれば。
public Object executeMyFunction(SoapObject request) throws Exception {
SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.implicitTypes = false;
envelope.dotNet = true;
envelope.setAddAdornments(false);
HttpTransportSE _ht = new HttpTransportSE(Configuration.getWsUrl());
_ht.call("myFunction", envelope);
return envelope.getResponse();
}