我有一個名爲DataElement的數據對象。它包含一串Base64轉換後的圖像字節,以及其他一些字段。發佈AFNetworking失敗的序列化對象
我試圖張貼此我WCF服務,我得到一個錯誤「預期的狀態碼(200-299),有400
的目標是發佈數據+圖像的WCF(休息)服務,並獲得一個修改後的圖像 - 端到端測試我正在做什麼。
在我的post方法中,如果我將編碼的字符串留空在對象上,一切正常 - 但如果該字符串不是空的,我會得到這個錯誤。
我的WCF服務甚至沒有被擊中,它只是炸彈正確的錯誤。這是我的post方法...我做錯了什麼?
- (void)postDataToServer:(NSString*)server dataElement:(DataElement*)dataElement asJson:(BOOL)useJson
{
NSString *urlString = [[NSString alloc] init];
NSData *encodedData;
urlString = [[server copy] stringByAppendingString:@"EchoXml"];
encodedData = [self encodeDataElementAsXml:dataElement];
NSURL *url = [NSURL URLWithString:urlString];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:urlString parameters:nil];
[request setHTTPBody:encodedData];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
[_responseTextView setText:[NSString stringWithFormat:@"Successfully uploaded file to %@", urlString]];
NSObject *httpResponseObject;
httpResponseObject = [self parseResponseAsXml:responseObject];
if ([httpResponseObject isKindOfClass:[DataElement class]])
{
DataElement *dataElement = (DataElement *)httpResponseObject;
_responseTextView.text = dataElement.DataText;
if (dataElement.DataImageBase64 != nil)
{
UIImage *dataImage = [self getImageFromString:dataElement.DataImageBase64];
self.responseImageView.image = dataImage;
}
}
NSLog(@"Successfully uploaded file to %@", urlString);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// It goes here immediately
[_responseTextView setText:[NSString stringWithFormat:@"Error: %@", error]];
NSLog(@"Error: %@", error);
}];
[operation start];
}
編輯:對不起格式有靠不住的時候我粘貼它...
我會研究這個 - 但即使這是不正確的,我不認爲網址是錯誤的 - 這個代碼工作得很好,如果dataelement屬性沒有設置數據。我已經驗證了這一點,因爲我的WCF服務,我可以打破我的斷點。只要將數據添加到該屬性就可以打破它。 – Nicros
啊,對不起,我錯過了你說過的話「如果我把編碼的字符串留在對象上一切都很好」。 –