我正在使用 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,我无权访问它):
不可能的 elaborare la richiesta。---> 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
有什么提示吗?是客户端故障还是服务器故障?