android 环境下 ksoap2 连接webservice.
android环境下ksoap2连接webservice.StringserviceURL="http://10.110.111.208:3000/iam/service...
android 环境下 ksoap2 连接webservice.
String serviceURL = "http://10.110.111.208:3000/iam/service/AndroidLoginService";
String methodName = "login";
SoapObject request = new SoapObject("http://10.110.111.208:3000/iam/service/AndroidLoginService",methodName);
request.addProperty("userName",etAccount.getText().toString());
request.addProperty("password",etPassword.getText().toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
HttpTransportSE ht = new HttpTransportSE(serviceURL);
try{
ht.call(null, envelope);
if(envelope.getResponse()!=null){
mTextView.setText(envelope.getResponse().toString());
}
} catch(Exception e){
e.printStackTrace();
}
ht.call 异常 异常信息
org.xmlpull.v1.XmlPullParserException: expected: END_TAG android 菜鸟 寻求帮助。 展开
String serviceURL = "http://10.110.111.208:3000/iam/service/AndroidLoginService";
String methodName = "login";
SoapObject request = new SoapObject("http://10.110.111.208:3000/iam/service/AndroidLoginService",methodName);
request.addProperty("userName",etAccount.getText().toString());
request.addProperty("password",etPassword.getText().toString());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
HttpTransportSE ht = new HttpTransportSE(serviceURL);
try{
ht.call(null, envelope);
if(envelope.getResponse()!=null){
mTextView.setText(envelope.getResponse().toString());
}
} catch(Exception e){
e.printStackTrace();
}
ht.call 异常 异常信息
org.xmlpull.v1.XmlPullParserException: expected: END_TAG android 菜鸟 寻求帮助。 展开
展开全部
1. 必须确保应用已经添加了网络通信权限
<uses-permission android:name="android.permission.INTERNET" />
2. soap请求的URL中的HOST部分不要使用ip地址,使用域名
3. SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
中的SOAP VER要和服务端对应,也可以低于服务端,但是不能高于服务端。
上述三点缺一不可,我讲述一下我的折腾过程供大家参考,
我最初由于马虎,没有做条件1 ,结果会报UnkownHostException,误导我把域名改为IP,
把域名改为IP后,虽然不会报UnkownHostException了,但是会报缺少权限,于是我加上条件1的权限,
加完之后,一切都正确,就总是报 org.xmlpull.v1.XmlPullParserException: expected: START_TAG ,
于是尝试修改SOAP信封版本,VER10 VER11 VER12 三种都试了,无效。
回忆起曾把请求URL中的域名改为IP,于是将IP改回域名,问题解决。
仔细看了一下服务端的版本,是VER11,于是尝试用VER12发送请求,
又报org.xmlpull.v1.XmlPullParserException: expected: START_TAG 了。
尝试用VER10,可以收到正确的response。
<uses-permission android:name="android.permission.INTERNET" />
2. soap请求的URL中的HOST部分不要使用ip地址,使用域名
3. SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
中的SOAP VER要和服务端对应,也可以低于服务端,但是不能高于服务端。
上述三点缺一不可,我讲述一下我的折腾过程供大家参考,
我最初由于马虎,没有做条件1 ,结果会报UnkownHostException,误导我把域名改为IP,
把域名改为IP后,虽然不会报UnkownHostException了,但是会报缺少权限,于是我加上条件1的权限,
加完之后,一切都正确,就总是报 org.xmlpull.v1.XmlPullParserException: expected: START_TAG ,
于是尝试修改SOAP信封版本,VER10 VER11 VER12 三种都试了,无效。
回忆起曾把请求URL中的域名改为IP,于是将IP改回域名,问题解决。
仔细看了一下服务端的版本,是VER11,于是尝试用VER12发送请求,
又报org.xmlpull.v1.XmlPullParserException: expected: START_TAG 了。
尝试用VER10,可以收到正确的response。
展开全部
你的namespace用在哪里了?程序没有namespace这个参数肯定错的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);改到10.
追问
改过了 依然异常。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询