2

我的系统:

服务器:由 JAX WS 2.2.3 (-wsgen) 生成的 Java Soap Web 服务

客户端:iOS - SudzC 生成的 Soap Web 服务


我在 iOS 上使用 SudzC 与 Java Web 服务进行通信。我想将 NSData 文件从 iOS 客户端上传到 Java 服务器或将 byte[] 文件从 Java 服务器下载到客户端。对于少量数据,Web 服务运行良好,但是当数据大于 4MB 时,就会出现问题。如果我发送的文件大于 4MB,则会发生 HTTP 内部错误 500,或者一切都卡住了,我的应用程序崩溃了。

有什么建议么?也许,我应该尝试除 SudzC 之外的其他东西吗?

我知道,要发送和接收大文件,SOAP 有一个称为 MTOM 的机会。这会从 SOAP 消息中提取 base64Binary 数据,并将其打包为 MIME 消息中的单独二进制 http 附件,其方式与电子邮件附件类似。所以我的问题是,如何在 iOS 客户端 SudzC 生成的 Objective-C 程序代码上实现这个选项?在 java 服务器端,MTOM 选项被激活,但在 iOS 客户端我必须实现这个选项?!

也许有人可以帮忙?

4

2 回答 2

3

我使用 WSClient++ 来生成类并且从来没有遇到过问题。

http://wsclient.neurospeech.com/

我不喜欢 SudzC,当 XML 返回有列表列表时我有任何问题。

于 2012-09-12T18:12:53.483 回答
2

我使用 SudzC 上传更大的文件(20 + 兆字节),所以问题可能不是来自 SudzC。我记得一开始文件上传也有问题:服务器不接受超过 X 字节的任何内容并且返回错误。

但是,我所看到的是,sudzC 在上传大文件时存在很多内存问题,所以我切换到 wsdl2objc 进行文件上传

于 2012-09-12T16:35:46.303 回答