web service-关于android 调用 .net webservice

问题描述

关于android 调用 .net webservice

各位大神好,我是自学安卓,我按照回答里二楼的网址里的方法,可惜出了错误,我不知道该怎么改。

主函数如下:

public class MainActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
try {
DBUtil dbUtil=new DBUtil();
dbUtil.IsUserNameExist();
} catch (Exception e) {}
}};
Button button = (Button) findViewById(R.id.query_btn);
button.setOnClickListener(listener);
}
}

然后调用DBUtil这个类:

public class DBUtil {

private ArrayList<String> arrayList = new ArrayList<String>();
private ArrayList<String> brrayList = new ArrayList<String>();
private GetWebService gws = new GetWebService();
public boolean IsUserNameExist() {
    arrayList.clear();
    brrayList.clear();
    return gws.GetWebService1("GetCountry", arrayList, brrayList);
}

}

然后就是webservice

public class GetWebService {

private String result;

//Except method "getAllInfo" and "getAllTestData"
public boolean GetWebService1(String methodName, ArrayList<String> Parameters, ArrayList<String> ParValues) {
    //命名空间
    String nameSpace = "http://www.shijinet.com.cn/kunlun/kws/1.1/";
    //EndPoint
    String endPoint = "http://http://10.0.2.2:8082/kws/InformationService.asmx";
    //SOAP Action
    final String soapAction = nameSpace + methodName;

    final HttpTransportSE transport = new HttpTransportSE(endPoint);
    transport.debug = true;

    //指定WebService的命名空间和调用的方法名
    SoapObject rpc = new SoapObject(nameSpace, methodName);

    for (int i = 0; i < Parameters.size(); i++) {
        rpc.addProperty(Parameters.get(i), ParValues.get(i));
    }

    //生成调用WebService方法的SOAP请求信息,并指定SOAP的版本(10、11或者12)
    final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

    envelope.bodyOut = transport;
    //设置是否调用的是.Net开发的WebService
    envelope.dotNet = true;

    envelope.setOutputSoapObject(rpc);

    //android 4.0以后的版本在主程中不允许联网
    Thread thread;
    thread = new Thread() {

        public void run() {

            try {
                //调用WebService
                transport.call(soapAction, envelope);
                SoapObject object = (SoapObject) envelope.bodyIn;//获取返回值,并封装成SoapObject
                result = object.getProperty(0).toString();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (XmlPullParserException e) {
                e.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }

        }

    };

    thread.start();
    try {
        thread.join();//等待该子程结束
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    if (result.equals("true")) {
        return true;
    } else {
        return false;
    }

}

}

出错点就在走到webservice方法里面的
//android 4.0以后的版本在主程中不允许联网
Thread thread;
thread = new Thread()
这个地方的时候,没有进去里面,直接跳到了
thread.start();
这个地方

实在搞不出来了,特来求教,谢谢各位

解决方案

用fiddler调试下,看服务器返回了什么错误状态码。如果是404就是地址不对,如果是500,服务器的问题,20x就是返回了数据。然后看你的解析。

解决方案二:

首先,你的TAG变量没有用,其次SERVER_URL就是你需要调用的webservice的地址。最后我想说的是,你可以用ksoap2-android这个jar包来调用webservice,很简单。参考:http://blog.csdn.net/usernameforcsdn/article/details/48400611

解决方案三:

求大神快来帮帮我,,,,

解决方案四:

package com.fairyeye.simple;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android......
答案就在这里:Android 调用.NET webservice

时间: 2024-11-03 22:59:32

web service-关于android 调用 .net webservice的相关文章

android 调用c# webservice 返回datatable

问题描述 如题,这个是返回的字符串结果anyType{schema=anyType{element=anyType{complexType=anyType{choice=anyType{element=anyType{complexType=anyType{sequence=anyType{element=anyType{};element=anyType{};};};};};};};};diffgram=anyType{DocumentElement=anyType{table=anyType

android调用web service(cxf)实例应用详解_Android

Google为ndroid平台开发Web Service提供了支持,提供了Ksoap2-android相关架包 1.下载该夹包可以直接登录http://code.google.com/p/ksoap2-android/,现在该站点已经提供了直接的下载,只要点击下载链接就可以下载了: 我现在的是ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar 2.好了,现在我们就可以进行新建项目来进行测试了,首先我们先建立java服务端,这里的一些前期

android调用web service(cxf)实例应用详解

Google为ndroid平台开发Web Service提供了支持,提供了Ksoap2-android相关架包 1.下载该夹包可以直接登录http://code.google.com/p/ksoap2-android/,现在该站点已经提供了直接的下载,只要点击下载链接就可以下载了: 我现在的是ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar 2.好了,现在我们就可以进行新建项目来进行测试了,首先我们先建立java服务端,这里的一些前期

用cxf公布和调用web service

用cxf发布和调用web service 最近我们的系统需要和一个第三方系统对接,对接的方式是通过web service,所以就学习了一下这方面的东西 用CXF来做web service是比较简单的,本文就简单介绍一下如何一步步发布web service,以及调用现有的web service.另外如果系统已经使用了Spring MVC,那么引入CXF需要额外的步骤,见本人另外一篇博客http://kyfxbl.iteye.com/blog/1432920.如果展现层没有用spring mvc,而

在ASP.NET Atlas中调用Web Service—批量调用以提高效率

asp.net|web 对于Atlas程序,在某些情况下,我们需要在短时间内调用大量的Web Service,例如某个列表中用户快速的点击删除.这时网络带宽,稳定程度等等往往会造成较长时间的延迟.如果可以将这些调用包装成一个单一的请求,那么用户只需忍受一次网络延迟,即可得到处理的结果,也间接的提高了效率.似乎这并不是一个很容易实现的功能,但幸运的是,Atlas中内建了对批量调用Web Service的支持,您所需要的只是在程序中简单设置一下. Atlas中每个Web Service的调用请求都有

在ASP.NET Atlas中调用Web Service

asp.net|web 在前一篇文章(在ASP.NET Atlas中调用Web Service--创建Mashup调用远端Web Service(基础知识以及简单示例))中,我介绍了一些Atlas中对远程Web Service进行Mashup的基础知识,并给出了一个最基础的没有丝毫用处例子.今天再回到这个话题上,我将给出一个更复杂点的,但有一些用处的例子--Yahoo! Weather. 废话到此为止,让我们先熟悉一下Yahoo! Weather服务:Yahoo!在其网站上提供了天气预报服务(h

android-Android代码调用mysql数据库,怎样调用,webservice方法调用怎么调用

问题描述 Android代码调用mysql数据库,怎样调用,webservice方法调用怎么调用 Android客户端调用远程动态mysql数据库,要求能向里面添加数据,并能把数据库中 的数据显示到Android代码客户端,新手,希望能给点给点demo参考一下! 解决方案 android用httpclient访问的jsp服务器端,jsp得到数据入库. 自己google android 调用web service android httpclient 以及 jsp 访问数据库 jsp 增删改查 j

通过压缩SOAP改善XML Web service性能

web|xml|性能|压缩 压缩文本是一个可以减少文本内容尺寸达80%的过程.这意味着存储压缩的文本将会比存储没有压缩的文本少80%的空间.也意味着在网络上传输内容需要更少的时间,对于使用文本通信的客户端服务器应用程序来说,将会表现出更高的效率,例如XML Web services. 本文的主要目的就是寻找在客户端和服务器之间使交换的数据尺寸最小化的方法.一些有经验的开发者会使用高级的技术来优化通过网络特别是互联网传送的数据,这样的做法在许多分布式系统中都存在瓶颈.解决这个问题的一个方法是获取更

有关jsp-JavaScript + web service 连接mysql

问题描述 JavaScript + web service 连接mysql 如何实现?最好能有实例.比如说,mysql中有一个test数据,我想让html文件读取数据库的内容,用上述方法,如果有别的方法也可以,求详细例子.本人小白,各位大哥求帮助 解决方案 javascript是通过post等请求调用web service API.而web service内部再调用mysql,取决于你用什么实现的web service,那么一般都有对应类库调用musql 然后web service返回结果给js