1

AFNetworking を使用して URL に投稿しようとしていますが、何をしてもエラーが発生し続けます。

Error Code: -1011 - Expected status code in (200-299), got 404

私のコードは次のとおりです。

NSString *baseurl = @"http://mysiteurl";

NSString *path = @"/user/register/";

AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:baseurl]];
[client registerHTTPOperationClass:[AFJSONRequestOperation class]];
//[client setAuthorizationHeaderWithUsername:@"myusername" password:@"mypassword"];

[client postPath:path parameters:[NSDictionary dictionaryWithObjectsAndKeys:_userName,@"user", _email, @"email",_password,@"password", nil] success:^(AFHTTPRequestOperation *operation, id JSON) {

    //NSLog(@"sjson: %@", [JSON valueForKeyPath:@"entries"]);
    NSLog(@"sjson: %@", JSON);        
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error Code: %i - %@",[error code], [error localizedDescription]);
}];

直接アクセスするとhttp://mysiteurl/user/register/、JSON が表示されます。

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

4

2 に答える 2

4

直接アクセスするとhttp://mysiteurl/user/register/、JSON が表示されます。

ブラウザを介してこれを行っている場合はGETリクエストを行っていますが、コードではPOSTリクエストを行っています。

404 は目に見えるアドレスだけでなく、HTTP メソッドも含まれます。POSTサーバーがatに応答することを確認する必要がありますhttp://mysiteurl/user/register/。フレームワーク (Rails など) によっては[client setDefaultHeader:@"Accept" value:@"text/json"]、正しいルートを取得するために追加する必要がある場合があります。

于 2012-07-03T19:01:56.793 に答える
0

私は通常、Postではなく[client getPath:parameters:params success:]を使用しますが、応答もJSON形式であるため、これは両方の場合に機能すると思います

これらの2行を追加します

[client.parameterEncoding = AFJSONParameterEncoding;
[client setDefaultHeader:@"Accept" value:@"text/json"];

[client registerHTTPOperationClass:[AFJSONRequestOperation class]];
于 2012-07-02T05:29:24.547 に答える