[问题] KSOPA2 httpTransportSE.call 出现问题

楼主: joycece (joycece)   2016-01-29 17:11:28
以下是我程式码
public class MainActivity extends Activity {
///手机归属地Webservice的参数信息
private static final String nameSpace = "http://192.168.1.104/SOAP";
private static final String urlAddress = "http://192.168.1.104/SOAP/soapclient4.php?wsdl";
private static final String methodName = "greet";
private static final String soapActionAddress = "http://192.168.1.104/SOAP/greet";
private TextView telAddress = null;
private EditText tel = null;
private Button btnAddress = null;
private String txtAddress = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnAddress = (Button) this.findViewById(R.id.btnSearchAddress);
telAddress = (TextView) this.findViewById(R.id.telAddress);
tel = (EditText) this.findViewById(R.id.telNo);
btnAddress.setOnClickListener(new Button.OnClickListener() {
@Override public void onClick(View v) { new Thread(new Runnable() { public void run() {
getTelAddress();
}
}).start();
}
});
}
public void getTelAddress() {
SoapObject soapObject = new SoapObject(nameSpace, methodName);
soapObject.addProperty("name", "Joyce");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER10);
envelope.bodyOut = soapObject;
envelope.dotNet = true;
envelope.setOutputSoapObject(soapObject);
System.out.println("Soap Name : " + soapObject.getProperty("name"));
HttpTransportSE httpTransportSE = new HttpTransportSE(urlAddress);
httpTransportSE.debug = true;
try {
httpTransportSE.call(soapActionAddress, envelope);
System.out.println("request xml after: " + httpTransportSE.responseDump);
if(envelope.bodyIn != null) {
SoapObject object = (SoapObject) envelope.bodyIn;
txtAddress = object.getProperty(0).toString();
handlerAddress.sendEmptyMessage(0);
telAddress.setText(txtAddress);
telAddress.setTextColor(0xFFFF00);
telAddress.setTextSize(100);
}
else {
telAddress.setText("No Response");
telAddress.setTextColor(0xFF0000);
telAddress.setTextSize(50);
}
} catch (Exception e) {
e.printStackTrace();
}
程式是在httpTransportSE.call(soapActionAddress, envelope); 报错了
想知在这样是什么错误? 还有如何trace取得主机回下来的xml资料?谢谢
Log 如下
I: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb
I: Initialized EGL, version 1.4
I: Soap Name : Joyce
W: org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT Result = Hello S...@1:21 in java.io.InputStreamReader@f4242c9)
W: at org.kxml2.io.KXmlParser.next(KXmlParser.java:432)
W: at org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
W: at org.kxml2.io.KXmlParser.nextTag(KXmlParser.java:2048)
W: at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:127)
W: at org.ksoap2.transport.Transport.parseResponse(Transport.java:129)
W: at org.ksoap2.transport.HttpTransportSE.parseResponse(HttpTransportSE.java:301)
W: at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:274)
W: at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118)
W: at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113)
W: at com.airlink.soaptest.MainActivity.getTelAddress(MainActivity.java:66)
W: at com.airlink.soaptest.MainActivity$1$1.run(MainActivity.java:43)
W: at java.lang.Thread.run(Thread.java:818)
作者: MIM23 (HAWK)   2016-01-30 05:49:00
记得网络连线不能在UI Thread上操作看到了… 有开执行绪,有给网络权限吗?
楼主: joycece (joycece)   2016-01-30 08:35:00
有喔 不然会连都建立不起来<uses-permission android:name="android.permission.INT会连socket都建立不起来(补充推文)
作者: tryagainloop (TRyagain)   2016-02-15 11:27:00
http://goo.gl/TRHio1 把server的BOM header 拿掉

Links booklink

Contact Us: admin [ a t ] ucptt.com