【问题标题】:Soap request with NSData and base64 encoding使用 NSData 和 base64 编码的 Soap 请求
【发布时间】:2012-04-27 23:20:35
【问题描述】:

我正在使用 sudzc 肥皂类与远程 Web 服务进行通信。 大多数请求都有效,但我在传输数据时遇到问题:

我要发送一些用 base64 编码的数据,我这样分配一个 NsData 对象:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"little_amount_of_data" ofType:@"dat"];  
NSData* dummy = [NSData dataWithContentsOfFile:filePath];
[service sendAudioFile:self action:@selector(sendAudioFileHandler:) username: self.username password: self.password fileBytes: dummy numBytes: [dummy base64Encoding].length audioTimestamp: [NSString stringWithFormat:@"%0.f",[[NSDate date]timeIntervalSince1970]]];

SOAP 请求看起来正确(数据编码正确,长度正确),但我收到了来自服务器的响应(我认为是 iis7,我无权访问它):

不可能的精致精致。 ---> Offset e lunghezza eccedono i limiti della matrice o il conteggio è maggiore del numero di elementi presenti dall'indice alla fine dell'insieme di origine。

翻译:

无法处理请求。 ---> 偏移量和长度超出数组的限制或计数大于源末尾索引的项目数。

如果客户端发送一个 void base64 字符串 (lenght=0),服务器会回复一条成功声明。

WSDL 将该字段描述为 base64Binary 我正在使用 NSData+Base64.h/NSData+Base64.m

有什么提示吗? 是客户端故障还是服务器故障?

【问题讨论】:

  • 已解决,问题很长。我正在发送编码文件的长度,网络服务想要原始文件的长度。
  • @RosCos 如果这个问题解决了,那么你应该写下你的解决方案并将其标记为正确的。

标签: objective-c ios soap base64 sudzc


【解决方案1】:

已解决,问题很长。我正在发送编码文件的长度,网络服务想要原始文件的长度。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2021-07-10
    • 2011-12-12
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多