2

我正在开发一个 android 应用程序,我必须导入一些 Web 服务引用;目前我正在使用Eclipse Indigo,但没有找到任何导入 Web 参考选项,那么任何人都可以帮我怎么做吗?

4

2 回答 2

1

导入 java.io.BufferedReader;导入 java.io.InputStream;导入 java.io.InputStreamReader;导入 java.util.ArrayList;

导入 org.apache.http.HttpEntity;导入 org.apache.http.HttpResponse;导入 org.apache.http.NameValuePair;导入 org.apache.http.client.HttpClient;导入 org.apache.http.client.entity.UrlEncodedFormEntity;导入 org.apache.http.client.methods.HttpPost;导入 org.apache.http.impl.client.DefaultHttpClient;

公共类 DbRequest {

public DbRequest() {
}
public String sendDBRequest(ArrayList<NameValuePair> httpPost) {
    String result = "";

    String url = "http://www.YourURL.com/android/dbservice.php";//For Online Server
    //String url = "http://10.0.2.2/android/dbservice.php";
    //String url = "http://192.168.1.4/android/dbservice.php";//For Local Server
    InputStream is = null;

    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        httppost.setEntity(new UrlEncodedFormEntity(httpPost));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
    } catch (Exception e) {
        result = e.toString();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        result = sb.toString();
    } catch (Exception e) {

        result = e.toString();
    }
    return (result);
}

}

替换您的数据库服务的 URL 地址。它会调用它并会收到字符串作为结果......

于 2011-09-28T04:33:10.753 回答
1

据我所知,没有任何方法可以在 Android 中自动创建 WSDL 服务引用。

不幸的是,您需要自己定义访问 WSDL 服务的类和方法。

如果您的 Web 服务使用 SOAP,那么您可能需要研究http://code.google.com/p/ksoap2-android/作为一个库来帮助您进行服务调用。

于 2011-09-28T03:45:48.927 回答