android soap webservers 无法执行 报错 ht.call(SOAP_ACTION, envelope);解决方法

1.可能没有加入网络访问权限,在Manifest里面加入,<uses-permission android:name="android.permission.INTERNET"/>

2.版本问题,很可能的问题,因为在android高于9的会出错,所以简单粗暴的办法就是,直接将版本信息

<uses-sdk
android:minSdkVersion="?"
android:targetSdkVersion="?"

/>

删除即可。

其他具体参考代码如下:

 1 package com.example.soaptestforandroid;
 2
 3 import java.io.IOException;
 4
 5 import org.ksoap2.SoapEnvelope;
 6 import org.ksoap2.serialization.SoapObject;
 7 import org.ksoap2.serialization.SoapSerializationEnvelope;
 8 import org.ksoap2.transport.HttpTransportSE;
 9 import org.xmlpull.v1.XmlPullParserException;
10
11 import android.os.*;
12 import android.annotation.SuppressLint;
13 import android.app.Activity;
14 import android.util.Log;
15 import android.view.Menu;
16 import android.widget.*;
17
18 public class MainActivity extends Activity
19 {
20
21     private static final String SERVICE_NAMESPACE = "http://services.jason.com/";
22     private static final String SERVICE_URL = "http://172.16.1.164:8080/MyWebServer/UserInfoPort?wsdl";
23     private EditText tv = null;
24
25
26
27     @SuppressLint("NewApi")
28     @Override
29     protected void onCreate(Bundle savedInstanceState)
30     {
31         super.onCreate(savedInstanceState);
32         setContentView(R.layout.activity_main);
33
34
35         try {
36         tv = (EditText) findViewById(R.id.hello);
37
38         //如果本系统为4.0以上(Build.VERSION_CODES.ICE_CREAM_SANDWICH为android4.0)
39         if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
40             // 详见StrictMode文档
41             StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
42                     .detectDiskReads().detectDiskWrites().detectNetwork()
43                     .penaltyLog().build());
44             StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
45                     .detectLeakedSqlLiteObjects().detectLeakedClosableObjects()
46                     .penaltyLog().penaltyDeath().build());
47         }
48
49         // 调用的方法
50         String mathodName = "GetUserInfo";
51         String SOAP_ACTION = SERVICE_NAMESPACE + mathodName;
52         // 创建HttpTransportSE对象
53             HttpTransportSE ht = new HttpTransportSE(SERVICE_URL);
54
55             ht.debug = true;
56             // 使用soap协议创建Envelop对象
57             SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
58                     SoapEnvelope.VER10);
59             // 实例化SoapObject对象
60             SoapObject object = new SoapObject(SERVICE_NAMESPACE, mathodName);
61             // 将SoapObject对象设置为SoapSerializationEnvelope对象的传出SOAP消息
62             envelope.bodyOut = object;
63             envelope.dotNet = true;
64             envelope.setOutputSoapObject(object);
65                 // 调用webService
66                 ht.call(SOAP_ACTION, envelope);
67                 System.out.println("envelope.getResponse()---"
68                         + envelope.getResponse());
69                 if (envelope.getResponse()!= null) {
70
71                     SoapObject result = (SoapObject) envelope.bodyIn;
72                     String name = result.getProperty(0).toString();
73                     System.out.println(name);
74                     tv.setText("返回值为:" + name);
75
76                 } else {
77                     tv.setText("无返回值");
78                 }
79             } catch (Exception e) {
80                 // TODO Auto-generated catch block
81                 e.printStackTrace();
82             }
83
84     }
85
86     @Override
87     public boolean onCreateOptionsMenu(Menu menu)
88     {
89         // Inflate the menu; this adds items to the action bar if it is present.
90         getMenuInflater().inflate(R.menu.main, menu);
91         return true;
92     }
93
94 }

时间: 2024-08-25 13:41:54

android soap webservers 无法执行 报错 ht.call(SOAP_ACTION, envelope);解决方法的相关文章

Android NDK报错(Eclipse)及解决方法

在AndroidNDK开发过程中,工程目录下的jni文件夹下编写的c/c++代码,通常会出现如下的几种类型的报错: 1.Unresolved inclusion:<XXX> 2.syntax error 3.Function 'XXX' could not be resolved 4.Type 'XXX' could not be resolved 5.Symbol 'XXX' could not be resolved 6.Method 'XXX' could not be resolved

mysql登录报错ERROR 1045 (28000的解决方法

问题描述: mysql -u root -p命令登录MySQL,提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 解决办法: information_schema 库的USER_PRIVILEGES 表中 没有给 'root'@'localhost' 赋权. mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' ID

Arcgis Javascript中geometryEngine报错’hq‘of undefined的解决方法

这个问题困扰了我一个星期,原因是使用geomagicbuffer时候,有的线可正常使用,有的就直接报错,一直没有解决,后来发现是api自己的bug导致的 干脆直接读代码,在geometryEngine第737行,有这么一句话(不同版本的额api可能会不同): if((this.Ec||1E4<u.jq&&1<u.Ci.length)......... 报错的就是这里,因为u没有判断是否存在,导致执行u.jq时候报错 按照下面修改就好啦 if((u)&&(u.jq

【spring boot+mybatis】注解使用方式(无xml配置)设置自动驼峰明明转换(),IDEA中xxDao报错could not autowire的解决方法

最近使用spring boot+mybatis,使用IntelliJ IDEA开发,记录一些问题的解决方法. 1.在使用@Mapper注解方式代替XXmapper.xml配置文件,使用@Select等注解配置sql语句的情况下,如何配置数据库字段名到JavaBean实体类属性命的自动驼峰命名转换? 使用spring boot后,越来越喜欢用注解方式进行配置,代替xml配置文件方式.mybatis中也可以完全使用注解,避免使用xml方式配置mapper.(参考  springboot(六):如何优

Github上LeakCanary编译报错CreateProcess error=2的解决方法

现象说明: 从github上拉下LeakCanary编译时报错 1 CreateProcess error=2, ??Õ?»µ½?¶ 原因分析: 该现象是由于Windows中Gradle调用命令未加cmd.exe /C导致Windows无法识别命令 解决方案: 定位到报错的gradle代码为leakcanary-android模块的build.gradle中的gitSha()方法,修改代码为: 1 def gitSha() { 2 return 'cmd.exe /C git rev-parse

Android 在Fragment中执行onActivityResult不被调用的简单解决方法

在Android开发中,我们经常会用到FragmentActivity下嵌套多个Fragment,但是在开发过程中会发现在嵌套的Fragment中使用onActivityResult回调方法没有被执行. 网上也有很多解决方法,但是说的都比较麻烦,所以今天给大家推荐一种超简单的用法, 在Fragment和FragmentActivity中都要重写onActivityResult方法,并且要保证两者的请求码或者结果码一致.代码如下: 在FragmentActivity中 @Override prot

pdo 连接数据库 报错 could not find driver 解决方法

在windows 下,调试一个PHP程序时,报了这个错误, could not find driver 原来我的这个程序中用到了PDO对象, 连接mysql 5.  在PHP的默认设置中,只打开了php_pdo 模块, 没有打开php_pdo_mysql模块.所以才会出现找不到驱动程序的错误. 把这个模块打开,重启apache就可以了. 当然了,如果你用别的数据库,打开对应的模块就OK了. extension=php_pdo_mysql

[PHP] 安装PHP报错“Primary script unknown”的解决方法

当安装完最新版的nginx和最新版的PHP以后,使用niginx默认配置文件中的PHP配置会有错误访问指定目录下的php文件时,显示File not found.错误.查看nginx的错误日志显示 90#90: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: 127.0.0.1, requ

mybatis报错invalid types () or values ()解决方法

### Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.chry.browserServer.db.model.User with invalid types () or values (). ause: java.lang.NoSuchMethodException: com.chry.browserServer.db.model.User.<init>()] wit