[英]Soap request with NSData and base64 encoding
我正在使用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,我無法訪問它):
不可思議的elaborare la richiesta。 --->抵消原產地范圍的限制,同時抵銷原產地標記和數量的擔保。
翻譯:
無法處理請求。 --->偏移量和長度超過了數組的限制,或者計數大於源末尾的索引中的項目數。
如果客戶端發送一個無效的base64字符串(lenght = 0),則服務器將回復成功語句。
WSDL使用NSData + Base64.h / NSData + Base64.m將字段描述為base64Binary
有什么提示嗎? 客戶端還是服務器故障?
解決了,問題仍然很嚴重。 我正在發送編碼文件的長度,Web服務希望原始文件的長度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.