1、第一种连接,判断了网络是否打开
/**
* 查询数据*
* @param context
* @param methodName
* @param Parameters
* @param ParValues
* @return List<>
*/
public static List<HashMap<String,String>> getInfo(Context context,String methodName,ArrayList<String> Parameters,
ArrayList<String> ParValues) {
List<HashMap<String,String>> listOut = new ArrayList<HashMap<String,String>>();
// 调用webservice接口的名称空间+方法名称
String soapAction = webNameSpace + methodName;
// 指定webservice的命名空间和调用的方法
SoapObject rpc = new SoapObject(webNameSpace,methodName);
if (Parameters.size() > 0) {
for (int i = 0; i < Parameters.size(); i++) {
rpc.addProperty(Parameters.get(i),ParValues.get(i));
}
}
// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本,该版本号需要根据服务器段WebService的版本号设置
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER10);
envelope.bodyOut = rpc;
// 设置是否调用的.net开发的webservice
envelope.dotNet = true;
// 等价于envelope.bodyOut=rpc
envelope.setoutputSoapObject(rpc);
envelope.encodingStyle = "UTF-8";
// 创建HttpTransportSE对象,通过HttpTransportSE类的构造方法可指定WebService的WSDL文档的URL
HttpTransportSE transport = new HttpTransportSE(webServiceUrl);//UIl地址后可以加超时操作
try {
// 使用call方法调用WebService方法
transport.call(soapAction,envelope);
if (envelope.getResponse()!=null) {
// 获取返回的数据
SoapObject object = (SoapObject) envelope.bodyIn;
// 获取返回的结果
String jsonStr = object.getProperty(0).toString();
Gson gson = new Gson();
listOut = gson.fromJson(jsonStr,
new Typetoken<List<HashMap<String,String>>>() {
}.getType());
}
} catch (Exception e) {
e.printstacktrace();
//网连接失败,使用Toast显示提示信息
Toast.makeText(context,"网络访问失败,请检查网络连接!",Toast.LENGTH_LONG).show();
}finally{
try {
transport.getServiceConnection().disconnect();
} catch (IOException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
return listOut;
}
2、第二种连接,没有判断用户是否打开网络,可以根据第一个添加判断
public static String getRemoteInfoTest(String methodName) { // 命名空间 String NAMESPACE = "http://carnavigation.com.org/"; // 网址 String URL = "http://219.232.252.9:8011/DBWebService.asmx"; // 方法名 // String METHOD_NAME = "getonecompArticles"; // SOAPACTION // String SOAP_ACTION = // "http://carnavigation.com.org/getonecompArticles"; String SOAP_ACTION = NAMESPACE + methodName; SoapObject rpc = new SoapObject(NAMESPACE,methodName); // 设置需调用WebService接口需要传入的参数 // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER10); envelope.bodyOut = rpc; // 设置是否调用的是dotNet开发的WebService envelope.dotNet = true; // 等价于envelope.bodyOut = rpc; envelope.setoutputSoapObject(rpc); HttpTransportSE transport = new HttpTransportSE(URL); try { // 调用WebService transport.call(SOAP_ACTION,envelope); } catch (Exception e) { e.printstacktrace(); } // 获取返回的数据 SoapObject object = (SoapObject) envelope.bodyIn; // 获取返回的结果 String result = object.getProperty(0).toString(); return result; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。