AFNetworking 2.0以前のバージョンをしばらく使用していた新しい API を使い始めたところです。ボグスタンダードをやろうとしていますhttp POST requestが、残念ながらうまくいきません。これは私の現在のコードです:
AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"username" : self.usernameField.text,
@"password" : self.passwordField.text};
[operationManager POST:@"https:URL GOES HERE" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", [responseObject description]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
現在、これはJSONofを返し(NULL)、ステータス コードのようなものは返されません404(ちなみに、AFN 2.0 を使用している場合、ステータス コードはどのように取得しますか?)。ただし、私のためにテストするapikitchen.comHTTP Post requestのような Web アプリで情報を試すと、フィールドにユーザー名とパスワードを入力すると機能しparamます。本当に私の質問は、Web アプリと同じように行動parametersしないのはなぜですか? そして、より一般的には、なぜ私のために働いていないのですか?AFN 2.0 parameter propertyparameterspost request parametersAFN 2.0
前もって助けてくれてありがとう、
マイク
編集:提案された修正の実装に苦労しています。私の Post メソッドは次のようになりましたが、今のところ意味がありません。
AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"username" : self.usernameField.text,
@"password" : self.passwordField.text};
operationManager.requestSerializer.queryStringSerializationWithBlock =
^NSString*(NSURLRequest *request,
NSDictionary *parameters,
NSError *__autoreleasing *error) {
NSString* encodedParams = form_urlencode_HTTP5_Parameters(parameters);
return encodedParams;
};
[operationManager POST:@"URL HERE" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", [responseObject description]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];