2

Android で asmx Web サービスを呼び出していますが、アプリケーションを実行するたびにエラーが発生します。

HTTP request faild.HTTP Status Code : 400

- を <10.0.2.2:port/WebService1.asmx> に変更しました

私も試してみました

しかし、それは同じエラーを出しています。

サービス .net では完璧に機能しますが、Android 向けのソリューションが必要です。親切に助けてください。ありがとうございました。

コード:

ウェブサービス:

[WebMethod]
    public string HelloWorld()
    {
        return "Hello World - This is nikki";
    }

MainActivity.java

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

public class MainActivity extends Activity {


 private static final String SOAP_ACTION = "http://tempuri.org/HelloWorld";

    private static final String METHOD_NAME = "HelloWorld";

    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String URL = "http://10.0.2.2:1553/WebService1.asmx";  





@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    call();

}


public void call()
{
     try {

         SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

         request.addProperty("passonString", "Rajapandian");

         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
         envelope.dotNet=true;
         envelope.setOutputSoapObject(request);

         HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
         androidHttpTransport.call(SOAP_ACTION, envelope);

         Object result = (Object)envelope.getResponse();

         Toast.makeText(this, result.toString(), Toast.LENGTH_LONG).show();
     } catch (Exception e) {
         Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
         }
}
4

3 に答える 3

2

すべての Web サービス呼び出しは、バックグラウンド スレッドで行う必要があります。Android では、メイン スレッドで Web サービスを呼び出すことはできません。非同期メソッドを使用します。

于 2013-09-06T22:22:16.733 に答える
0

400を意味しBad Requestます。サーバー応答しています。HTTP リクエストは問題なく作成されていますが、API のルールに従っていないだけです。

ドキュメントを確認してください。リクエストをコンソールにダンプしてみて、ヘッダーが欠落していないか、パラメーターのスペルが間違っていないかなどを確認してください。また、応答本文をダンプすると、デバッグに役立つ場合があります。

于 2013-03-31T10:24:56.197 に答える