问题标签 [sudzc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2607 浏览

web-services - SOAP 请求在一台服务器上随机失败,但在 iOS7 上的另一台服务器上运行

我有一个通过 SOAP 请求获取数据的 iPhone 应用程序。SOAP 调用由 sudzc.com 库完成。

我必须向两台服务器发出 SOAP 请求。

  • Server A : 是我自己的服务器,我在这里检索一些信息,我自己写的 SOAP Response
  • 服务器 B : 一个第三方服务器,它给我一些必要的信息

iOS 6 应用程序 100% 正确运行。

IOS 7

  • 服务器 A:完美运行
  • 服务器 B:SOAP 请求随机失败。我有时会收到以下错误消息:

    < SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> < SOAP-ENV:Header/> < SOAP-ENV:Body> < SOAP-ENV:Fault > < faultcode>SOAP-ENV:Server < faultstring xml:lang="en">无法访问信封:无法从给定源创建信封:;嵌套异常是 com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:无法从给定源创建信封::无法从给定源创建信封::org.xml.sax.SAXParseException:文档中的标记在根元素必须格式正确。:文档中根元素之前的标记必须格式正确。</faultstring> <detail/> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

任何人都有一个想法,为什么这只发生在iOS7上以及我如何摆脱它?

更新: 这可能与一台服务器在 https 上运行而另一台在 http 上运行的事实有关吗?

0 投票
1 回答
130 浏览

ios - 我可以用 sudzc 更改服务器 url 吗?

我正在尝试wsdliOS. 我偶然发现了几个工具,到目前为止wsclient++sudzc 至少似乎可以工作。soap但是我需要根据应用程序的状态,向具有相同接口的不同服务器发送请求iOS

在生成的源代码中,wsclient我可以通过以下方式设置服务器 URL

我可以让我做类似的事情

有没有办法存档与生成的源代码类似的东西sudzc

0 投票
1 回答
4412 浏览

ios - SudzC ARC 版本 - objc_msgSend 调用导致 EXC_BAD_ACCESS 使用 64 位架构

编辑-我已将以下问题跟踪到 64 位与 32 位体系结构问题...请参阅我发布的答案以了解如何解决

我使用SudzC为 Web 服务生成 SOAP 代码。他们为您提供了一个示例应用程序,我能够在设备和模拟器上成功使用它。

然后我开始构建我的应用程序。我使用空白应用程序模板(启用了 CoreData 和 ARC)将 SudzC 生成的文件导入到新的 XCode 项目中。

我启动并运行了第一个 SOAP 请求——在模拟器中一切正常——然后我开始在设备上进行我的第一次测试(运行 iOS 7.02 的 iPhone 5S)。EXC_BAD_ACCESS每次运行 SOAP 请求时,设备都会引发错误。

我已经将其追踪到SoapRequest.m文件,特别是connectionDidFinishLoading方法。此方法使用objc_msgSend调用将 SOAP 响应数据发送回另一个类(在本例中为我的视图控制器)中的处理程序方法。这是代码:

肥皂请求.m:

所以这条线objc_msgSend(self.handler, self.action, output);似乎是我的问题所在。self.handler指向我的视图控制器,并self.action指向这个方法:

任务视图控制器.m:

重新进入这个方法是我崩溃的地方。看起来它(id)value并没有从 SoapRequest 类中恢复过来。我认为它正在被 ARC 释放。我已经通过替换(id)valueint

objc_msgSend(self.handler, self.action, 1);

- (void)findItemHandler:(int)value

这行得通。假设问题是值变量过早地被破坏,我尝试了一些方法来保持它的保留。我向 SoapRequest.m 添加了一个属性:

@property (nonatomic, strong) id value;

然后通过了:

同样的问题。我也用 SoapRequest 的实例尝试了同样的事情......现在,我能够通过在视图控制器中创建一个属性并将该属性设置为该值来解决这个问题,但我真的很好奇如何使用它来解决这个问题原始代码。我回到从 SudzC 下载的示例应用程序,看看它是如何工作的,结果发现该项目没有启用 ARC(!)。

有人可以告诉我:

1)如果我的假设是正确的,output即被释放,导致处理程序方法引用错误的内存地址?

2)为什么这适用于模拟器?我认为这是因为 sim 有更多可用内存,所以它对 ARC 释放没有那么激进......

objc_msgSend3)假设我想保持通话,我该如何解决这个问题?我想了解如何/为什么会发生这种情况

4) 如果 SudzC 在这里的用法是正确的objc_msgSend,据我所知,除非在极少数情况下,否则直接调用它是不好的做法?

谢谢!

0 投票
2 回答
1523 浏览

ios - 在 IOS 中解析 XML 响应

我正在创建一个 IOS 应用程序。在其中我必须使用 SOAP Web 服务来获取一些详细信息。这样我就使用了 SUDZ-C 来生成存根。我可以调用网络服务并得到响应。但我无法解析响应。以下是 XML 响应。

谁能帮我解析这个回复。这对我会有帮助。

0 投票
1 回答
99 浏览

ios - Sudzc:如何将参数或参数传递给函数?

进行了很多搜索,但找不到我查询的示例。

我已成功将 sudzc 代码集成到我的项目中,但无法找到将参数传递给函数的方法:

如果与 sudzc 合作,有人可以告诉我一个例子吗?

提前致谢。