import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.MarshalBase64;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity {
EditText editText;
Button button;
// ListView listView;
TextView textView;
String weatherToday;
SoapObject detail; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
addListener();
}
private void initView() {
editText=(EditText) findViewById(R.id.editText1);
textView=(TextView) findViewById(R.id.textView1);
// listView=(ListView) findViewById(R.id.listView1);
button=(Button) findViewById(R.id.button1);
}
private void addListener() {
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String trainId=editText.getText().toString().trim();
if(trainId==null || "".equals(trainId)){
trainId="D312";
getTrain(trainId);
textView.setText(weatherToday);
// Toast.makeText(MainActivity.this, "请输入火车班次", Toast.LENGTH_SHORT).show();
}else{
getTrain(trainId);
}
}
});
}
/**
* 火车班次查询
* 返回数据为DataSet
*
* @param TrainId
* 火车班次
*/
public void getTrain(String trainId){
String NameSpace="http://WebXml.com.cn/";
String WSDL="http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx";
String NameMethod="getDetailInfoByTrainCode";
String SoapAction="http://WebXml.com.cn/getDetailInfoByTrainCode";
SoapObject soapObject=new SoapObject(NameSpace, NameMethod);
soapObject.addProperty("TrainCode",trainId);
soapObject.addProperty("UserId",null);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut=soapObject;
envelope.dotNet=true;
envelope.setOutputSoapObject(soapObject);
HttpTransportSE ht=new HttpTransportSE(WSDL);
ht.debug=true;
try {
ht.call(SoapAction, envelope);
if(envelope.getResponse()!=null){//返回数据为DataSet,到了这一句就会出现这样的错误
//SoapFault - faultcode: 'soap:Server' faultstring: '服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。' faultactor: 'null' detail: org.kxml2.kdom.Node@4053cc80
detail=(SoapObject) envelope.getResponse();
Toast.makeText(MainActivity.this, "detail"+detail.toString(), Toast.LENGTH_SHORT).show();
}
} catch (SoapFault e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}ksoap2怎样处理DataSet
import java.util.ArrayList;
import java.util.List;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.MarshalBase64;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity {
EditText editText;
Button button;
// ListView listView;
TextView textView;
String weatherToday;
SoapObject detail; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
addListener();
}
private void initView() {
editText=(EditText) findViewById(R.id.editText1);
textView=(TextView) findViewById(R.id.textView1);
// listView=(ListView) findViewById(R.id.listView1);
button=(Button) findViewById(R.id.button1);
}
private void addListener() {
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String trainId=editText.getText().toString().trim();
if(trainId==null || "".equals(trainId)){
trainId="D312";
getTrain(trainId);
textView.setText(weatherToday);
// Toast.makeText(MainActivity.this, "请输入火车班次", Toast.LENGTH_SHORT).show();
}else{
getTrain(trainId);
}
}
});
}
/**
* 火车班次查询
* 返回数据为DataSet
*
* @param TrainId
* 火车班次
*/
public void getTrain(String trainId){
String NameSpace="http://WebXml.com.cn/";
String WSDL="http://webservice.webxml.com.cn/WebServices/TrainTimeWebService.asmx";
String NameMethod="getDetailInfoByTrainCode";
String SoapAction="http://WebXml.com.cn/getDetailInfoByTrainCode";
SoapObject soapObject=new SoapObject(NameSpace, NameMethod);
soapObject.addProperty("TrainCode",trainId);
soapObject.addProperty("UserId",null);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut=soapObject;
envelope.dotNet=true;
envelope.setOutputSoapObject(soapObject);
HttpTransportSE ht=new HttpTransportSE(WSDL);
ht.debug=true;
try {
ht.call(SoapAction, envelope);
if(envelope.getResponse()!=null){//返回数据为DataSet,到了这一句就会出现这样的错误
//SoapFault - faultcode: 'soap:Server' faultstring: '服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。' faultactor: 'null' detail: org.kxml2.kdom.Node@4053cc80
detail=(SoapObject) envelope.getResponse();
Toast.makeText(MainActivity.this, "detail"+detail.toString(), Toast.LENGTH_SHORT).show();
}
} catch (SoapFault e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}ksoap2怎样处理DataSet
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货