1

ksoap2 を使用して .NET Web サービスにアクセスしようとしていますが、なぜ機能しないのかわかりません。

すでに多くのチュートリアルを読みましたが、まだ機能していません。常にエラーが発生します:

at org.kxml2.io.KXmlParser.exception(KXmlParser.java:273)
at org.kxml2.io.KXmlParser.nextTag(KXmlParser.java:1413)
at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:126)
at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)
at br.android.listgame.Activitys.ListSimpleActivity.onCreate(ListSimpleActivity.java:108)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1721)
at android.app.ActivityThread.access$1500(ActivityThread.java:124)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3844)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)

私はすでにsoapUIを使用してWebサービスをテストしており、正常に動作しています。

    SoapObject soap = new SoapObject(NAMESPACE, OPERATION);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

    soap.addProperty("nome", "artur");
    envelope.dotNet = true;
    envelope.setOutputSoapObject(soap);

    HttpTransportSE httpTransport = new HttpTransportSE(URL);
    try {

        httpTransport.call(SOAP_ACTION, envelope);
        resposta = envelope.getResponse().toString();

    } catch (IOException ioex) {
        ioex.printStackTrace();
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
        // TODO: handle exception
    }

私はすでに.jarをプロジェクトに追加してライブラリとして追加しており、インターネットを使用する権限も設定しています。

私はアンドロイド2.2を使用しています

4

2 に答える 2

0

問題は私の接続にあったようです。コードは正しかったのですが、3G を使用して接続しようとしたときに機能しませんでしたが、wi-fi を使用してテストすることにしたときは正常に動作しました。

すでにいくつかのアプリケーションを見たように、wi-fi への接続を通知する検証とフィードバックを追加します。

于 2012-04-26T16:55:22.423 に答える
0

次の行に問題があると思います...

`resposta = envelope.getResponse().toString();`

このコードを試してください...私のために働いています...

public class FinalWebServiceDemoActivity extends Activity {

// some parameters regarding your web-service to be invoked
private static final String SOAP_ACTION = "http://tempuri.org/WebServiceMethod";
private static final String METHOD_NAME = "WebServiceMethod";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://10.0.2.2:2256/WebService.asmx";

TextView tv;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    tv=(TextView)findViewById(R.id.text1);
    call();
}

public void call()
{
    try {
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        request.addProperty("message","Hello");

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

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

        SoapPrimitive result = (SoapPrimitive)envelope.getResponse();
        String strRes = result.toString();

        tv.setText(strRes);
    } catch (Exception e) {
        tv.setText("Exception...");
        Log.i("exception", e.toString());
        StackTraceElement elements[] = e.getStackTrace();
        for (int i = 0, n = elements.length; i < n; i++) {      
            Log.i("File", elements[i].getFileName());
            Log.i("Line", String.valueOf(elements[i].getLineNumber()));
            Log.i("Method", elements[i].getMethodName());
        }
    }
}}

これがうまくいくことを願っています.. :)

于 2012-04-25T07:47:44.673 に答える