本帖最后由 teedooLAB 于 2012-02-22 15:46:56 编辑

解决方案 »

  1.   

    用他干嘛,没事找事
    用httpclient吧,android自带了,省事点
      

  2.   

    我刚好最近一直在用ksoap2做android手机的开发,有需要吗?
    把你邮箱给我,我发给你我用的例子代码,注释也比较全的
      

  3.   

    算了,我看了一下代码也不是很多,就贴出来算了。
    记得自己去网上下载这个jar包:ksoap2-android-assembly-2.4-jar-with-dependencies.jarprivate static String NameSpace="http://tempuri.org/";
    private static String u="http://10.8.8.70:808";//请更换成你要访问的服务器地址
    private static String webService="/webService/WebService.asmx";//webService目录
    private static String MethodName="HelloWorld2";//要调用的webService方法
    private static String soapAction=NameSpace+MethodName;
    private static String url=u+webService;

    private TextView tv;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        
            tv=(TextView)findViewById(R.id.tv);
            tv.setText(ws());
        }
        //webService操作要访问网络,所以最好是使用线程来做,这里只是示例,所以就不考虑了
        private String ws(){
         String result="";
         try{
         SoapObject request=new SoapObject(NameSpace,MethodName);//NameSpace
         //webService方法中的参数,这个根据你的webservice来,可以没有。
         //但请注意,参数名称和参数类型客户端和服务端一定要一致,否则将可能获取不到你想要的
         //request.addProperty("x",5);
         //request.addProperty("y", 6);
        
         SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(
         SoapEnvelope.VER11);
        
         envelope.dotNet=true;
        
         envelope.setOutputSoapObject(request);
        
         HttpTransportSE ht=new HttpTransportSE(url);
        
         ht.call(soapAction, envelope);
        
         if(envelope.getResponse()!=null){
         SoapPrimitive response=(SoapPrimitive)envelope.getResponse();
         result=response.toString();//这里获得了webService的返回值
         }
        
         }catch(Exception e){
         result=e.getMessage();
         }
         return result;
        }