android调用webservice报错 服务器无法处理请求,Android中调用已经部署到IIS中.net的webservice数据Android端无法执行报错的问题。求大神指点。...

) params[1]);

52 } else if (params != null && params.length == 1) {

53 return CallWebService((String) params[0], null);

54 } else {

55 return null;

56 }

57 }

58

59 protected void onPostExecute(String result) {

60 if (result != null) {

61 txtMsg.setText("服务器回复的信息 : " + result);

62 }

63 };

64

65 }.execute(params);

66 }

67

68 /**

69 *

70 * 调用WebService

71 * @return WebService 返回值

72 */

73 public String CallWebService(String MethodName, Mapparams) {

74 Log.i("--------进入调用CallWebService------","CallWebService");

75 //1、指定webservice的命名空间和调用的方法名

76 //SoapObject类的第一个参数表示WebService的命名空间,

77 //可以从WSDL文档中找到WebService的命名空间。第二个参数表示要调用的WebService方法名。

78 SoapObject request=new SoapObject(Namespace,MethodName);

79

80

81 // 2、设置调用方法的参数值,如果没有参数,可以省略,

82 if(params!=null){

83 Iterator iter=params.entrySet().iterator();

84 while(iter.hasNext()){

85 Map.Entry entry=(Map.Entry) iter.next();

86 request.addProperty((String) entry.getKey(),

87 (String) entry.getValue());

88 }

89 }

90 // 3、生成调用Webservice方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述

91 //SOAP协议的版本号可以从WebService的WSDL文档中查看到

92 SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER12);

93 envelope.bodyOut = request;

94 // c#写的应用程序必须加上这句

95 envelope.dotNet = true;

96 //创建HttpTransportsSE对象。通过HttpTransportsSE类的构造方法可以指定WebService的WSDL文档的URL:

97 HttpTransportSE ht=new HttpTransportSE(WEB_SERVICE_URL);

98 // 使用call方法调用WebService方法

99 try {

100 //Call方法的第一个参数一般为null,第2个参数就是在第3步创建的SoapSerializationEnvelope对象。

101 ht.call(null, envelope);

102 } catch (HttpResponseException e) {

103 e.printStackTrace();

104 } catch (IOException e) {

105 e.printStackTrace();

106 } catch (XmlPullParserException e) {

107 e.printStackTrace();

108 }

109 //使用envelope对象的getResponse方法获得WebService方法的返回结果

110 try {

111 SoapPrimitive result=(SoapPrimitive) envelope.getResponse();

112 if(result!=null){

113 Log.i("--------收到的回复------",result+"");

114 return result.toString();

115 }

116 } catch (SoapFault e) {

117 Log.e("---------发生了错误---------", e.getMessage().toString());

118 e.printStackTrace();

119 }

120 return null;

121 }

122

123 }

当我在app中点击执行调用doHellow方法或者调用doEchoMessage方法时候程序报错,原因貌似是说在调用webService的时候异步线程中执行有误。报错截图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值