build.gradle(Project:……)
allprojects {
repositories {
google()
jcenter()
//配置中心仓库 找到依赖的jar包
maven { url "https://oss.sonatype.org/content/repositories/ksoap2-android-releases/" }
}
}
build.gradle(Modoule:app)
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
//配置依赖
implementation 'com.google.code.ksoap2-android:ksoap2-android:3.6.3'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
ExampleUnitTest
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
//命名空间
String nameSpace = "http://WebXml.com.cn/";
//地址
String url = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";
//junit 测试 java测试
@Test public void test() throws IOException, XmlPullParserException {
//根据城市获取getSupportProvince
// String methodName = "getSupportProvince";
//查询支持城市getSupportCity
String methodName = "getSupportCity";
//创建HttpTransportSe对象:请求url地址
HttpTransportSE httpTransportSE = new HttpTransportSE(url);
//创建SoapObject对象:命名空间,调用方法名
SoapObject soapObject = new SoapObject(nameSpace, methodName);
//输入参数
soapObject.addProperty("byProvinceName", "非洲");
//传递参数 没有
//Soap序列化对象:版本
SoapSerializationEnvelope soapSerializationEnvelope = new SoapSerializationEnvelope(SoapSerializationEnvelope.VER11);
//设置
soapSerializationEnvelope.dotNet = true;
//设置输入的简单对象
soapSerializationEnvelope.setOutputSoapObject(soapObject);
//开启调试
httpTransportSE.debug = true;
//执行调用:命名空间+调用方法
httpTransportSE.call(nameSpace + methodName,soapSerializationEnvelope);
//获取结果
if (soapSerializationEnvelope.getResponse() != null){
SoapObject bodyIn = (SoapObject) soapSerializationEnvelope.bodyIn;
SoapObject property = (SoapObject) bodyIn.getProperty(0);
for (int i = 0; i < property.getPropertyCount(); i++) {
SoapPrimitive soapPrimitive = (SoapPrimitive) property.getProperty(i);
System.out.print(soapPrimitive.getValue());
}
System.out.print(bodyIn);
}
}
}