4
NSDictionary *customerDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"blah@blah.com", @"email", @"1", @"facebook", nil];
NSArray *customerArray = [NSArray arrayWithObjects:customerDictionary, nil];
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:customerArray, @"customers", nil];
NSURLRequest *request = [sharedHTTPClient requestWithMethod:@"POST" path:@"/api/upload" parameters:parameters];
AFJSONRequestOperation *operation =
    [AFJSONRequestOperation JSONRequestOperationWithRequest:request
                                                    success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {}
                                                    failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {}];
[operation start];

Node.JS バックエンドで本文を出力すると、次のように表示されます。

{ customers: [ '1', 'blah@blah.com' ] }

予想される印刷は次のとおりです。

{ customers: [{ facebook:'1', email:'blah@blah.com' }] }

私は何を間違っていますか?

4

1 に答える 1

7

AFNetworking wiki から:

リクエストで JSON パラメータを送信するにはどうすればよいですか?

AFHTTPClient を使用している場合は、parameterEncoding プロパティを AFJSONParameterEncoding に設定します。パラメーター引数を持つその HTTP クライアントのすべてのメソッドは、渡されたオブジェクトを JSON 文字列にエンコードし、HTTP 本文と Content-Type ヘッダーを適切に設定します。

それ以外の場合は、ヘッダー Content-Type: application/json を追加し、リクエストの本文を JSON 文字列に設定することで、これを手動で行うことができます。

于 2012-10-29T08:31:47.343 に答える