Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android KSOAP2未返回任何结果_Android_Asp.net_Web Services_Ksoap2_Android Ksoap2 - Fatal编程技术网

Android KSOAP2未返回任何结果

Android KSOAP2未返回任何结果,android,asp.net,web-services,ksoap2,android-ksoap2,Android,Asp.net,Web Services,Ksoap2,Android Ksoap2,我正在使用KSOAP2库调用ASP.NET web服务。我没有得到任何错误,但我也没有得到任何回应,也没有任何解决这个问题的想法 下面是我的代码。我只是调用helloworld默认方法,返回一个字符串 public class MainActivity extends Activity { private final String NAMESPACE = "http://tempuri.org/"; private final String URL =

我正在使用KSOAP2库调用ASP.NET web服务。我没有得到任何错误,但我也没有得到任何回应,也没有任何解决这个问题的想法

下面是我的代码。我只是调用helloworld默认方法,返回一个字符串

    public class MainActivity extends Activity {

        private final String NAMESPACE = "http://tempuri.org/";
        private final String URL = "http://(ip)/TrialService.asmx";
        private final String SOAP_ACTION = "http://tempuri.org/HelloWorld";
        private final String METHOD_NAME = "HelloWorld";
        TextView t1;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            t1 = (TextView) findViewById(R.id.textView1);

            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
            if (android.os.Build.VERSION.SDK_INT > 9) {
                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                        .permitAll().build();
                StrictMode.setThreadPolicy(policy);
            }
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.setOutputSoapObject(request);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
            try {
                androidHttpTransport.call(SOAP_ACTION, envelope);
                String receivedInt = (String) envelope.getResponse();
                t1.setText(receivedInt);
                setContentView(t1);
            } catch (Exception e) {
                t1.setText("error");
            }
        }
    }       
首先从启用调试开始,这样您就可以看到要发送到服务器的soap信封的内容,您可以通过添加(请参见注释部分)来做到这一点:

现在您可以看到soap信封被发送到您的服务器,检查它是否准确。(您可以使用以下程序将其与从桌面发送的信封进行比较:

下一步:

  • 您必须提供更多详细信息,以便我们能够更好地帮助您:放置相关WSDL部分的副本

  • 确保您使用的是正确的值:名称空间、方法名称、URL、SOAP操作

  • 如果这是一个测试项目,并且您有权访问服务器,那么您可以在发送请求时检查服务器上发生了什么

欲了解更多有助于您的参考资料,请参阅我的答案:

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;//ADD THIS
try {
     androidHttpTransport.call(SOAP_ACTION, envelope);
     //ADD THESE 2
     //Important Outputs to check how the request/Response looks like.. Check them in Logcat to find these outputs
     System.out.println("requestDump is :"+androidHttpTransport.requestDump);//ADDED
     System.out.println("responseDump is :"+androidHttpTransport.responseDump);//ADDED

     String receivedInt = (String) envelope.getResponse();
     t1.setText(receivedInt);
     setContentView(t1);
} catch (Exception e) {
        t1.setText("error");
}