1

既に andoird マニフェスト ページにインターネット アクセス許可を含めましたが、それでもエラーが続くようです。同様のコードで不明なホスト例外も受け取ります。親切に私を案内してください!タイ!:)

package name.id;

import android.app.Activity;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import org.ksoap2.*;
import org.ksoap2.serialization.*;
import org.ksoap2.transport.*;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class FirstPage extends Activity implements android.view.View.OnClickListener
{
    /** Called when the activity is first created. */

  TextView tv;
  Button bu;
  EditText et;

  private static final String SOAP_ACTION="http://lthed.com/GetFullNamefromUserID";
    private static final String METHOD_NAME="GetFullNamefromUserID";
    private static final String NAMESPACE="http://lthed.com";
    private static final String URL="http://vpwdvws09/services/DirectoryService.asmx";

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        et=(EditText) findViewById(R.id.editText1);
        tv=(TextView) findViewById(R.id.textView2);
        bu=(Button) findViewById(R.id.button1);
        bu.setOnClickListener((android.view.View.OnClickListener) this);
        tv.setText("");
    }

    public void onClick(View v)
    {           
        // creating the soap request and all its paramaters
        SoapObject request= new SoapObject(NAMESPACE, METHOD_NAME);
        //request.addProperty("ID","89385815");// hardcoding some random value
        //we can also take in a value in a var and pass it there


        //set soap envelope,set to dotnet and set output
        SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        soapEnvelope.dotNet=true;
        soapEnvelope.setOutputSoapObject(request);

        HttpTransportSE obj = new HttpTransportSE(URL);
        //to make call to server
        try
        {
            obj.call(SOAP_ACTION,soapEnvelope);// in out parameter
            SoapPrimitive resultString=(SoapPrimitive)soapEnvelope.getResponse();
            //soapObject or soapString
            tv.setText("Status : " + resultString);
        }
        catch(Exception e)
        {
            tv.setText("Error : " + e.toString());
            //e.printStackTrace();
        }

}
}
4

3 に答える 3

2

マニフェストにインターネット許可を追加しましたか:

<uses-permission android:name="android.permission.INTERNET"/>
于 2013-01-24T04:57:08.543 に答える
1

URLのエラーが原因でエラーがスローされていました。Webサービスが理解できなかったため、URLが正しく機能するには、提供していたURLではなくIPアドレスが必要でした。

于 2013-03-06T05:32:24.367 に答える
0

使用している KSOAP2 のバージョンによって、エラーが異なる場合があります。

KSOAP2 v3+ lib を使用することをお勧めします。

次のコードを使用してオーバーライドするだけです...

StrictMode.ThreadPolicy ポリシー = 新しい StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(ポリシー);

また、使用します...

于 2014-08-03T09:32:32.733 に答える