使用NSData和base64编码的Soap请求

时间:2012-04-27 23:20:36

标签: objective-c ios soap base64 sudzc

我正在使用sudzc soap类与远程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我认为,我无法访问它):

  

Impossibile elaborare la richiesta。 ---> Offset e lunghezza eccedono i limiti della matrice o ilconteggioèmaggioredel numero di elementi presenti dall'indice alla fine dell'insieme di origine。

翻译:

  

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

如果客户端发送void base64字符串(lenght = 0),则服务器回复成功语句。

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

任何提示? 客户端或服务器是否有故障?

1 个答案:

答案 0 :(得分:0)

解决了,问题很长。我发送编码文件的长度,webservice想要原始文件的长度。