我正在使用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
任何提示? 客户端或服务器是否有故障?
答案 0 :(得分:0)
解决了,问题很长。我发送编码文件的长度,webservice想要原始文件的长度。