POST를 통해 서버에 매개 변수를 보내려고하는데 일반적으로 작동하지만 배열을 매개 변수 중 하나로 포함하는 JSON을 보내는 방법을 알 수 없습니다 . 여기에 내가 무엇을 시도했다입니다 :POST 요청의 JSON 매개 변수로 AFNetworking 배열 보내기
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:myURL]];
NSMutableArray *objectsInCart = [NSMutableArray arrayWithCapacity:[_cart count]];
for(NSDictionary *dict in _cart)
{
NSObject *object = [dict objectForKey:@"object"];
NSDictionary *objectDict = @{@"product_id": [NSString stringWithFormat:@"%d",[object productID]],
@"quantity": [NSString stringWithFormat:@"%d", [[dict objectForKey:@"count"] intValue]],
@"store_id": [NSString stringWithFormat:@"%d", [Store getStoreID]],
@"price": [NSString stringWithFormat:@"%.2f", [object price]]};
[objectsInCart addObject:objectDict];
}
NSError *error = nil;
NSString *cartJSON = [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:objectsInCart
options:NSJSONWritingPrettyPrinted
error:&error]
encoding:NSUTF8StringEncoding];
if(error)
{
NSLog(@"Error serializing cart to JSON: %@", [error description]);
return;
}
NSDictionary *parameters = @{@"status": @"SUBMITTED",
@"orders": cartJSON};
NSMutableURLRequest *orderRequest = [httpClient requestWithMethod:@"POST"
path:@"/app/carts"
parameters:parameters];
AFJSONRequestOperation *JSONOperation = [[AFJSONRequestOperation alloc] initWithRequest:orderRequest];
을하지만이 JSON을 보낼 때이 오류가 발생합니다. 어떤 제안이라도 대단히 감사합니다!
서버가 예상하는 내용을 알지 못하지만 일반적으로 JSON의 모든 항목에는 배열을 포함한 키가 있습니다. 이제 키를 사용하지 않고 배열을 전송하는 것입니다. "NSString * cartJSON = @" 'products': % @ ", [[NSString alloc] initWithData : [NSJSONSerialization dataWithJSONObject : objectsInCart 옵션 : NSJSONWritingPrettyPrinted 오류 : & 오류] 인코딩 : NSUTF8StringEncoding]을 시도하십시오. – dirkgroten
'parameters' 사전을 보면 배열의 키가'@ "orders"' – Mason
입니다. 선을 통해 전송되는 실제 데이터를 살펴 보았습니까? 필자는 찰스 프록시와 같은 앱의 가치를 높이기 위해 내 앱에서 외부 서버로 보내는 모든 트래픽을 차단했습니다. – dirkgroten