简体   繁体   English

Android 中来自 SOAP Web 服务的 JSON 格式数据

[英]jSON format data from SOAP Web service in Android

I try to parse Parse JSON format data from SOAP Web service in Android but throw the An Error occurred while processing output information.Here I paste the Logcat, browser output of service.Could anybody guide to me what's wrong in my code?我尝试在 Android 中解析来自 SOAP Web 服务的 Parse JSON 格式数据,但在处理输出信息时抛出了一个错误。这里我粘贴了 Logcat,服务的浏览器输出。有人能告诉我我的代码有什么问题吗?

String NAMESPACE = "http://dyndns.biz/AndroidService/";
String METHOD_NAME = "GetItemCategory";
String SOAP_ACTION = "http://dyndns.biz/AndroidService/GetItemCategory";
String URL = "http://dyndns.biz/AndroidService/Service.asmx";
String strDate ="26/07/2014";
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
Request.addProperty("CreateDate", strDate);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(Request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
androidHttpTransport.call(SOAP_ACTION, envelope);
System.out.println("aht requestDump is :"+ androidHttpTransport.requestDump);
System.out.println("aht responseDump is :"+ androidHttpTransport.responseDump);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
String responseJSON=response.toString();
JSONArray jarray =new JSONArray(responseJSON);
final String TAG_ID = "Id";    
final String TAG_NAME = "CategoryName";
final String TAG_CODE = "CategorCode";
 final String TAG_ACTIVE = "Active";
final String TAG_CREATEDATE="Createdate";
String  Name=jarray.getJSONObject(0).getString(TAG_NAME);
String  Id=jarray.getJSONObject(0).getString(TAG_ID);
String  Active=jarray.getJSONObject(0).getString(TAG_ACTIVE);
String  Code=jarray.getJSONObject(0).getString(TAG_CODE);
String  CreateDate =jarray.getJSONObject(0).getString(TAG_CREATEDATE);

json response json 响应

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
 <faultcode>soap:Client</faultcode>
  <faultstring>An Error occurred while processing output information.</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>

<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:d="http://www.w3.org/2001/XMLSchema" 
xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
<v:Header />
<v:Body>
<GetItemCategory xmlns="http://everestmrm.dyndns.biz:81/AndroidService/" 
id="o0" c:root="1">
<CreateDate i:type="d:string">26/07/2014</CreateDate>
</GetItemCategory>
</v:Body>
</v:Envelope>

Thanks for Reply My LogCat:感谢您回复我的 LogCat:

LogCat:

06-18 16:17:49.279: W/System.err(972): SoapFault - faultcode: 'soap:Client' faultstring: 'An Error occurred while processing output information.' faultactor: 'null' detail: org.kxml2.kdom.Node@4185aa40
06-18 16:17:49.281: W/System.err(972):  at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:136)
06-18 16:17:49.282: W/System.err(972):  at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)
06-18 16:17:49.282: W/System.err(972):  at org.ksoap2.transport.Transport.parseResponse(Transport.java:100)
06-18 16:17:49.283: W/System.err(972):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:195)
06-18 16:17:49.284: W/System.err(972):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)
06-18 16:17:49.287: W/System.err(972):  at com.neotransit.mrmc.download$4.onClick(download.java:379)
06-18 16:17:49.288: W/System.err(972):  at android.view.View.performClick(View.java:3517)
06-18 16:17:49.289: W/System.err(972):  at android.view.View$PerformClick.run(View.java:14155)
06-18 16:17:49.290: W/System.err(972):  at android.os.Handler.handleCallback(Handler.java:605)
06-18 16:17:49.291: W/System.err(972):  at android.os.Handler.dispatchMessage(Handler.java:92)
06-18 16:17:49.293: W/System.err(972):  at android.os.Looper.loop(Looper.java:154)
06-18 16:17:49.294: W/System.err(972):  at android.app.ActivityThread.main(ActivityThread.java:4624)
06-18 16:17:49.295: W/System.err(972):  at java.lang.reflect.Method.invokeNative(Native Method)
06-18 16:17:49.296: W/System.err(972):  at java.lang.reflect.Method.invoke(Method.java:511)
06-18 16:17:49.297: W/System.err(972):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
06-18 16:17:49.299: W/System.err(972):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
06-18 16:17:49.300: W/System.err(972):  at dalvik.system.NativeStart.main(Native Method)
06-18 16:17:49.300: D/jdwp(972): sendRequest : Len=0x32
06-18 16:17:49.301: D/jdwp(972): processIncoming
06-18 16:17:49.301: D/jdwp(972): handlePacket : cmd=0x2, cmdSet=0xF, len=0x10, id=0xD5C, flags=0x0, dataLen=0x5
06-18 16:17:49.301: D/jdwp(972): REQ: EventRequest.Clear (cmd=15/2 dataLen=5 id=0x000d5c)
06-18 16:17:49.301: D/jdwp(972): reply: dataLen=0 err=NONE(0)
06-18 16:17:49.303: D/jdwp(972): processIncoming
06-18 16:17:49.303: D/jdwp(972): handlePacket : cmd=0x6, cmdSet=0xB, len=0x1B, id=0xD5D, flags=0x0, dataLen=0x10
06-18 16:17:49.303: D/jdwp(972): REQ: ThreadReference.Frames (cmd=11/6 dataLen=16 id=0x000d5d)
06-18 16:17:49.303: D/jdwp(972): reply: dataLen=352 err=NONE(0)
06-18 16:17:49.304: D/jdwp(972): processIncoming
06-18 16:17:49.304: D/jdwp(972): handlePacket : cmd=0x7, cmdSet=0xB, len=0x13, id=0xD5E, flags=0x0, dataLen=0x8
06-18 16:17:49.304: D/jdwp(972): REQ: ThreadReference.FrameCount (cmd=11/7 dataLen=8 id=0x000d5e)
06-18 16:17:49.304: D/jdwp(972): reply: dataLen=4 err=NONE(0)
06-18 16:17:49.314: D/jdwp(972): processIncoming
06-18 16:17:49.314: D/jdwp(972): handlePacket : cmd=0x3, cmdSet=0x10, len=0x1B, id=0xD5F, flags=0x0, dataLen=0x10
06-18 16:17:49.314: D/jdwp(972): REQ: StackFrame.ThisObject (cmd=16/3 dataLen=16 id=0x000d5f)
06-18 16:17:49.314: D/jdwp(972): reply: dataLen=9 err=NONE(0)
06-18 16:17:49.316: D/jdwp(972): processIncoming
06-18 16:17:49.316: D/jdwp(972): handlePacket : cmd=0x1, cmdSet=0xB, len=0x13, id=0xD60, flags=0x0, dataLen=0x8
06-18 16:17:49.316: D/jdwp(972): REQ: ThreadReference.Name (cmd=11/1 dataLen=8 id=0x000d60)
06-18 16:17:49.316: D/jdwp(972): reply: dataLen=12 err=NONE(0)
06-18 16:17:49.317: D/jdwp(972): processIncoming
06-18 16:17:49.317: D/jdwp(972): handlePacket : cmd=0x1, cmdSet=0x9, len=0x13, id=0xD61, flags=0x0, dataLen=0x8
06-18 16:17:49.317: D/jdwp(972): REQ: ObjectReference.ReferenceType (cmd=9/1 dataLen=8 id=0x000d61)
06-18 16:17:49.317: D/jdwp(972): reply: dataLen=9 err=NONE(0)

Browser Output:浏览器输出:

[["69","TESTDEMO","True","TEST","26/07/2014 2:51:59 PM"]] [[“69”,“TESTDEMO”,“真”,“测试”,“26/07/2014 2:51:59 PM”]]

For client faultcode: "The content generated by the client is incorrect or malformed. Therefore, resending the same data will result in the same error. In SOAP 1.2, this fault is being changed to Sender."对于client代码:“ client生成的内容不正确或格式错误。因此,重新发送相同的数据将导致相同的错误。在 SOAP 1.2 中,此错误已更改为 Sender。” (from https://www.safaribooksonline.com/library/view/java-web-services/0596002696/ch04s02.html ) So probably your soap request is wrong - malformed or with wrong (other than expected for speciefied service) data (来自https://www.safaribooksonline.com/library/view/java-web-services/0596002696/ch04s02.html )所以你的肥皂请求可能是错误的 - 格式错误或错误(除了预期的指定服务)数据

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM