package com.android;
import java.io.UnsupportedEncodingException;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class test {
private static final String NAMESPACE = "http://www.gzee.com/webservices/";
// WebService地址
private static String URL = "http://gzee-ent.oicp.net:8070/iGzeeOA/prg/set/exchangeset/wss/pd.asmx";
private static final String METHOD_NAME = "UserLogin";
private static String SOAP_ACTION = NAMESPACE + METHOD_NAME;
private String weatherToday;
private String resultNode = "UserLoginResponse";
private Button okButton;
private SoapObject detail;
@SuppressWarnings("deprecation")
public void login() {
try {
System.out.println("rpc------");
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
System.out.println("rpc" + rpc);
System.out.println("userName is : " + "boss");
rpc.addProperty("userName", "boss");
rpc.addProperty("password", "123456");
AndroidHttpTransport ht = new AndroidHttpTransport(URL);
ht.debug = true;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
ht.call(SOAP_ACTION, envelope);
// 从这几行打出的信息中就可以看到返回的值了,这不是标准的做法,但是用于调试很有用,如果不能连接上的话,会有不能连接服务器的信息,并还有异常打出来
System.out.println("----------rpc: "+rpc);
System.out.println("----------ht: "+ht);
// 这个也能看到结果
System.out.println("----------envelope: "+envelope);
// 一般结果会在这两个里
System.out.println("----------envelope.bodyIn: "+envelope.bodyIn);
System.out.println("-----------------info :"+envelope.bodyIn);
Object se = (Object)envelope.bodyIn;
SoapObject result = (SoapObject) envelope.bodyIn;
// 这里我们先得到有几个Attribute和Property,一般都是用的Property,这个是传递的参数
// 如果不知道返回的参数有哪些或叫什么名字,我们可以在这里用打断点调试,里面的所有参数名和值都能看到了,再取相应的就行了
int acount = result.getAttributeCount();
int pcount = result.getPropertyCount();
System.out.println("-------------count : "+result.getAttributeCount());
for(int i = 0; i<pcount ; i++){
//System.out.println("-------------p : "+result.getAttribute(i));
System.out.println("-------------n : "+result.getProperty(i));
}
// detail = (SoapObject) result
// .getProperty(resultNode);
System.out.println("------------result" + result);
System.out.println("------------detail" + detail);
//parseWeather(detail);
return;
} catch (Exception e) {
e.printStackTrace();
}
}
private void parseWeather(SoapObject detail)
throws UnsupportedEncodingException {
String date = detail.getProperty(6).toString();
weatherToday = "今天:" + date.split(" ")[0];
weatherToday = weatherToday + "\n天气:" + date.split(" ")[1];
weatherToday = weatherToday + "\n气温:"
+ detail.getProperty(5).toString();
weatherToday = weatherToday + "\n风力:"
+ detail.getProperty(7).toString() + "\n";
System.out.println("weatherToday is " + weatherToday);
}
}
AndroidHttpTransport // 有着自己的见解
修改bug 参考网址 http://www.cnblogs.com/zhangdongzi/archive/2011/04/19/2020688.html