Đang cố gắng đăng thông tin cho các tham số lồng nhau vào ứng dụng đường ray và gặp sự cố.Sử dụng ASIHTTPRequest để POST các tham số lồng nhau bằng cách sử dụng NSDictionary
#pragma mark - Begin Network Operations
- (void)beginNetworkOperation {
NSURL *requestURL = [NSURL URLWithString:[self retrieveURL]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:requestURL];
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0
[request setShouldContinueWhenAppEntersBackground:YES];
#endif
[request setRequestMethod:@"PUT"];
[request addRequestHeader:@"Content-Type" value:@"application/json"];
[request addPostValue:strClientId forKey:@"client_id"];
[request addPostValue:strAccessToken forKey:@"access_token"];
NSDictionary *assetDictionary = [NSDictionary dictionaryWithObject:self.tags forKey:@"tags"];
[request addPostValue:assetDictionary forKey:@"asset"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestFinished:)];
[request setDidFailSelector:@selector(requestFailed:)];
[request startSynchronous];
}
self.tags chỉ là một NSString với các giá trị dấu phẩy tách ra, tuy nhiên một lần đến tại máy chủ ray tham số thẻ không thể đọc được (params [: tài sản] [: Thẻ]).
Tôi đã thử điều này bằng cách thực hiện [request addPostValue: [assetDictionary JSONRepresentation] forKey: @ "asset"]; và tôi nhận được cùng một lỗi trên máy chủ đường ray "TypeError (không thể chuyển đổi Symbol thành Integer)" mà thực sự có vẻ không có ý nghĩa gì cả ... – Kyle
Có thể đó là vì các hôn mê trong chuỗi của bạn, bởi vì hôn mê là dấu phân cách của JSON. Cố gắng thay thế comas trong sting của bạn bằng cách khác để xem nếu nó hoạt động bằng cách sử dụng - stringByReplacingOccurrencesOfString: withString: – MatLecu
Dữ liệu thử nghiệm của tôi chưa chứa bất kỳ dấu phẩy nào. – Kyle