일부 매개 변수와 함께 HTTP Post 메서드에 AFNetworking을 사용하고 두 값에 동일한 매개 변수가 필요합니다. 나는 시도했다 :AFHTTPClient requestWithMethod ParameterEncoding
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
NSDictionary *params = [NSDictionarydictionaryWithObjectsAndKeys: @"value1", @"param1", @"value2", @"param2", @"value3", @"param3", @"value4", @"param3", nil];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"/index.php" parameters:params];
나는 찰스 프록시를 사용했고 값 4가 내 요청에 누락되었다는 것을 알아 냈다.
그때 나는 시도 :NSString *parameter = @"param1=value1¶m2=value2¶m3=value3¶m3=value4";
[request setHTTPBody:[parameter dataUsingEncoding:NSUTF8StringEncoding]];
그리고 이것은했다.
이제 AFNetworking에 문제가 있는지 또는 AFNetworking의 버그인지 알고 싶습니다.
물론. 나는 그것에 대해 생각하지 않았지만 그것은 명백합니다. '- (NSMutableURLRequest *) requestWithMethod : (NSString *) method 경로 : (NSString *) 경로 매개 변수 : (NSDictionary *) parameters'는 NSDictionary가 필요합니다. NSDictionary와 함께 위에서 언급 한 매개 변수 문자열을 생성하는 방법이 있습니까? –
@KaiOe 아니요, 이런 식으로 키에 대한 중복 항목을 가질 방법이 없습니다. 필요한 경우 POST 몸체를 수동으로 빌드하고 설정하거나 (여러 번 값을 정의했기 때문에) 매개 변수가 배열을 필요로하는 경우이를 배열에 인코딩합니다. 매개 변수 사전 – mattt
예, 매개 변수에는 배열이 필요합니다. 이것은 잘 작동합니다 :'NSArray * xjxargs = [NSArray arrayWithObjects : @ "value3", @ "value4", nil]; NSDictionary * params = [NSDictionary dictionaryWithObjectsAndKeys : xjxargs, @ "param3"];'대단히 감사합니다! –