通过ksoap2访问donet webservice
2011-03-10 09:04
363 查看
通过2天的摸索,从一开始用序列化-反序列化方式开始就没成功过,似乎是因为语言不同导致序列化不成功。后来就用RPC方式,可以获取单独对象,但是数组集合的获取没想到合理方式。最后只是简单的修改了下代码,通过Ksoap 的 soapobject 对象获取了集合
下面是服务端代码(webservice)
下面是客户端代码
下面是服务端代码(webservice)
/// <summary> /// Service1 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] // [SoapRpcService]//指定使用rpc方式 public class Service1 : System.Web.Services.WebService { // [SoapRpcMethod, WebMethod]//具体方法中也要指定rpc方式 [WebMethod] public string HelloWorld() { return "Hello World"; } // [SoapRpcMethod, WebMethod]//具体方法中也要指定rpc方式 [WebMethod] public Person GetPerson() { Person p = new Person(1,"xzd",34); return p; } // [SoapRpcMethod, WebMethod]//具体方法中也要指定rpc方式 [WebMethod] public Person SetPerson(string name,int age) { Person p = new Person(1, name, age); return p; } [WebMethod] //[SoapRpcMethod, WebMethod] 具体方法中也要指定rpc方式 public List<Person> GetPersonlist() { return PersonManager.GetPersonlist(); } }
下面是客户端代码
TextView tvResult ; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); SoapObject request = new SoapObject("http://tempuri.org/", "GetPersonlist"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10); envelope.dotNet = true; envelope.setOutputSoapObject(request); AndroidHttpTransport ht = new AndroidHttpTransport("http://192.168.1.101/Service/Service1.asmx"); (new MarshalBase64()).register(envelope);//放着没错 tvResult = (TextView)findViewById(R.string.hello); try { ht.call("http://tempuri.org/GetPersonlist",envelope); SoapObject soapObject = (SoapObject) envelope.getResponse(); String names=""; if(soapObject.getName()=="anyType") { for(int i=0;i<soapObject.getPropertyCount();i++) { SoapObject soapChilds =(SoapObject)soapObject.getProperty(i); names+= soapChilds.getProperty("Name").toString()+","+ soapChilds.getProperty("Id").toString()+","+ soapChilds.getProperty("Age").toString(); } } tvResult.setText(names); } catch (Exception e) { // TODO Auto-generated catch block tvResult.setText(e.getMessage().toString()); } }
相关文章推荐
- java webservice 总结(学会读别人的webservice并且通过代理模式访问)
- ACTIVEFORM+WebService+ACCESS,Web客户端通过WebService访问Access数据库
- Android 3.0 访问donet webService 出现 android.os.NetworkOnMainThreadException错误!
- nginx让用户通过用户名密码认证访问web页面
- 通过 Service 访问 Pod - 每天5分钟玩转 Docker 容器技术(136)
- 如何将javaweb打包的war包发布到tomcat的根目录直接通过域名访问,而不是在二级目录
- Tomcat 部署 Web 通过 ip 直接访问项目
- WEB-INF下的JSP是不能通过URL直接访问的
- 解决webpack无法通过IP地址访问localhost的问题
- Tomcat 部署 Web 通过 ip 直接访问项目
- java+mysql在tomcat服务器下建立SOAP(axis2)通过KSOAP2访问的诸多问题
- win平台,apache通过web访问svn
- [CentOS Python系列] 五.阿里云部署web环境及通过IP地址访问服务器网页
- 利用WebResource.axd通过一个URL来访问装配件的内置资源
- 利用WebResource.axd通过一个URL来访问装配件的内置资源
- 调试通过的android手机调用网上.net web service的例子
- asp.net项目中通过Web.config配置文件及文件夹的访问权限!
- nginx让用户通过用户名密码认证访问web页面
- 通过 Service 访问 Pod - 每天5分钟玩转 Docker 容器技术(136)
- Android 访问C#.Net Webservice (简单例子适合初学者)