如何解决java.net.SocketException Permission Denied错误?

时间:2013-01-24 04:39:10

标签: android-emulator

我已经在andoird清单页面中包含了Internet权限,但错误似乎仍然存在。我也在类似的代码中接受了一个未知的宿主感知。请指导我!泰! :)

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();
        }

}
}

3 个答案:

答案 0 :(得分:2)

您是否已为您的清单添加了Internet权限:

<uses-permission android:name="android.permission.INTERNET"/>

答案 1 :(得分:1)

由于URL中的错误而引发错误。 URL需要我的IP地址才能正常运行,而不是我提供的URL,因为Web服务无法理解。

答案 2 :(得分:0)

根据您使用的KSOAP2版本错误可能会有所不同。

建议使用KSOAP2 v3 + lib。

只需使用以下代码覆盖......

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()。permitAll()。build();   StrictMode.setThreadPolicy(政策);

并且还使用......