下载一个jar包:ksoap2-android-assembly-3.1.0-jar-with-dependencies.jar
定义webservice 方法
调用:
java代码:
package com.qsmart.audit.utility;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
/**
* 调用Asp.Net web services
*
* @author 李波
*
* @date 2013-11-08
*/
public class HttpClientHelper
{
private final String NAMESPACE = "http://tempuri.org/";
private String url = null;
private String methodName = null;
private String soapAction = null;
public HttpClientHelper(String url, String methodName)
{
this.url = url;
this.methodName = methodName;
this.soapAction = NAMESPACE + methodName;
}
/**
* DoGet
*
* @param map
* @return
*/
public String HttpDoGet(Map<String, String> map)
{
String resultString = "";
try
{
HttpTransportSE httpTransportSE = new HttpTransportSE(url);
httpTransportSE.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
SoapObject soapObject = new SoapObject(NAMESPACE, methodName);
Set<Map.Entry<String, String>> entryseSet = map.entrySet();
for (Map.Entry<String, String> entry : entryseSet)
{
soapObject.addProperty(entry.getKey(), entry.getValue());
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
httpTransportSE.call(soapAction, envelope);
if (envelope.getResponse() != null)
{
Object response = (Object) envelope.getResponse();
resultString = response.toString();
}
} catch (Exception e)
{
resultString = e.getMessage();
}
return resultString;
}
/**
* 提交数据
*
* @param map
* map数据格式
* @return true or false
*/
public boolean HttpDoPostByMap(Map<String, String> map)
{
boolean result = false;
HttpTransportSE transport = new HttpTransportSE(url);
transport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
transport.debug = true;
SoapObject request = new SoapObject(NAMESPACE, methodName);
Set<Map.Entry<String, String>> entryseSet = map.entrySet();
for (Map.Entry<String, String> entry : entryseSet)
{
request.addProperty(entry.getKey(), entry.getValue());
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.bodyOut = transport;
envelope.setOutputSoapObject(request);
try
{
transport.call(soapAction, envelope);
if (envelope.getResponse() != null)
{
Object obj = (Object) envelope.getResponse();
Boolean rBoolean = Boolean.parseBoolean(obj.toString());
if (rBoolean == true)
{
result = true;
}
}
} catch (IOException e)
{
e.printStackTrace();
} catch (XmlPullParserException e)
{
e.printStackTrace();
} catch (Exception ex)
{
ex.printStackTrace();
}
return result;
}
/**
* 提交数据
*
* @param json
* json数据格式
* @return true or false
*/
public boolean HttpDoPostByJson(String json)
{
boolean result = false;
HttpTransportSE transport = new HttpTransportSE(url);
transport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
transport.debug = true;
SoapObject request = new SoapObject(NAMESPACE, methodName);
request.addProperty("json", json);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.bodyOut = transport;
envelope.setOutputSoapObject(request);
try
{
transport.call(soapAction, envelope);
if (envelope.getResponse() != null)
{
Object obj = (Object) envelope.getResponse();
Boolean rBoolean = Boolean.parseBoolean(obj.toString());
if (rBoolean == true)
{
result = true;
}
}
} catch (IOException e)
{
e.printStackTrace();
} catch (XmlPullParserException e)
{
e.printStackTrace();
} catch (Exception ex)
{
ex.printStackTrace();
}
return result;
}
}