我正在开发一个 android 应用程序,我必须导入一些 Web 服务引用;目前我正在使用Eclipse Indigo,但没有找到任何导入 Web 参考选项,那么任何人都可以帮我怎么做吗?
2 回答
导入 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 地址。它会调用它并会收到字符串作为结果......
据我所知,没有任何方法可以在 Android 中自动创建 WSDL 服务引用。
不幸的是,您需要自己定义访问 WSDL 服务的类和方法。
如果您的 Web 服务使用 SOAP,那么您可能需要研究http://code.google.com/p/ksoap2-android/作为一个库来帮助您进行服务调用。