Sudzc with iOS 5 and ARC

丶灬走出姿态 提交于 2019-12-20 09:43:17

问题


I've been trying to get a webservices working using Sudzc. Whenever I convert my WSDL to obj-c without automatic reference counting it works just fine. The problem is, we are building all our applications in iOS 5 now and all our code uses ARC. Sudzc now also allows you to create a bundle with ARC enabled but when I run this code it always returns null.

I tried debugging the Sudzc code and it does receive a correct xml response back from the service. Somewhere something is lost in translation. I tried converting the working Sudzc code without ARC into code with ARC enabled but as soon as I've fixed all errors it returns null again.

Did anyone encounter this and know what is going wrong? Would save me loads of time not having to debug the whole Sudzc code by myself.


回答1:


In my case (SUDZC with ARC for IOS), I have replaced the folowing code in SoapRequest.m file;

CXMLNode* element = [[Soap getNode: [doc rootElement] withName:@"Body"] childAtIndex:0];

with

CXMLNode* element = [[Soap getNode: [doc rootElement] withName:@"soap:Body"] childAtIndex:0];

Somehow the respective function is searching for the root element with name "Body". After inspecting the soap envelope it is easy to see the root element's name is "soap:Body".




回答2:


My webService was create in Java with Axis Eclipse.

FOR ARC I use : "soapenv:Body"

And in the file SoapObject.m I add

#import "Soap.h"
#import "SoapObject.h"



回答3:


In my case "env:Body" worked. Check your return xml (by printing) and replace appropriately




回答4:


In my case it was an .Net web service (WCF) and I had to use s:Body: Found out by printing the CXML document:

CXMLNode* test = [doc rootElement];
NSLog(@"%@",test);

Here I got this:

<CXMLElement 0x68c1a50 [0x68c1b10] s:Envelope <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><**s:Body**><GetUserIDResponse xmlns="http://tempuri.org/"><GetUserIDResult>8</GetUserIDResult></GetUserIDResponse></s:Body></s:Envelope>>

Thanks to previous posts I was able to find it out and posted the complete answer again on my blog: http://www.dailycode.info/Blog/post/2012/08/07/SUDZC-webservices-always-return-0-(WCF-web-service-and-IOS-client).aspx



来源:https://stackoverflow.com/questions/8645637/sudzc-with-ios-5-and-arc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!