公司伺服器是采用webservice搭建的,用soap協定互動資料,我用過gsoap跟ksoap.跟大家分享一下ksoap如何通路webservice的。如果有webservice伺服器測試的朋友直接看用戶端的代碼參考就可以了,沒有webservice伺服器的朋友可以自己搭建一個測試一下.
伺服器代碼,這裡就貼出一個方法(需要全部代碼的請點選下載下傳連結,下載下傳連結在文檔尾部)
public string getuserinfo(){
return "android開發技術交流群 202928390";
}
java客服端代碼
package com.ansen.test;
import org.ksoap2.soapenvelope;
import org.ksoap2.serialization.soapobject;
import org.ksoap2.serialization.soapserializationenvelope;
import org.ksoap2.transport.httptransportse;
public class test {
private static final string namespace ="http://services.jason.tsd/";//你的webservice的命名空間
private static string url ="http://localhost:8080/usermgrservice/userinfoport?wsdl";
private static final string method_name ="getuserinfo";//你要調用方法的名字
public static void main(string[] args) {
string name=ksoaptest();//在java項目中可以直接調用
system.out.println(name);
// new thread(){//如果是android項目必須要開啟一個線程調用,還要增加通路網絡的權限
// @override
// public void run() {
// string name=ksoaptest();
// system.out.println(name);
// }
// }.start();
}
public static string ksoaptest(){
soapobject request = new soapobject(namespace, method_name);//命名空間,要掉用的方法的名字
// request.addproperty("userid",9);//如果有參考可以設定參數
soapserializationenvelope envelope = new soapserializationenvelope(soapenvelope.ver11); //協定
envelope.bodyout = request;
httptransportse ht = new httptransportse(url);//wsdl的url連結
soapobject soapobject=null;
try {
ht.call(namespace+"#"+method_name, envelope);
soapobject= (soapobject) envelope.bodyin;
} catch (exception e) {
e.printstacktrace();
}
string name=soapobject.getproperty(0).tostring();//得到第一個傳回值
// string dwsum=soapobject.getproperty(1).tostring();//得到第二個傳回值
return name;
}
搭建伺服器以及用戶端調用操作步驟:
1.需要有jdk
2.需要有myeclipse環境
3.myeclipse需要配置tomcat
4.把伺服器代碼導入myeclipse裡面
5.運作tomcat
6.浏覽器輸入位址:http://localhost:8080/usermgrservice/userinfoport?wsdl
7.把java客服端代碼導入myeclipse,運作即可
<a target="_blank" href="http://download.csdn.net/detail/lowprofile_coding/8339735">下載下傳源碼</a>
後記:
最近有朋友發現我的代碼在java項目下運作沒有問題,代碼移植android項目中就會有問題.
1.檢查你的手機跟電腦是同一個區域網路,或者你的伺服器支援外網通路.
2.通路webservice的url不要填寫localhost,寫你tomcat伺服器的ip位址.例如我伺服器ip位址是:192.168.9.129,修改後url如下.
private static string url ="http://192.168.9.129:8080/usermgrservice/userinfoport?wsdl";