0

私はこのコードを持っています:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

NSDictionary *parameters = @{@"client_id": some index};

[manager GET:@"some address"
  parameters:parameters
    progress:^(NSProgress * _Nonnull progress) {
        NSLog(@"In progress: %d%%", (int)([progress fractionCompleted] * 100 ));
    }
     success:^(NSURLSessionTask *task, id responseObject) {
         [self processData:[responseObject objectForKey:@"orders"]];
     }
     failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
         NSLog(@"%@", error);
     }];

から呼び出されviewDidLoadます。ほとんどの場合はうまく機能しますが、時々次のエラーが発生します。

エラー ドメイン=com.alamofire.error.serialization.response コード=-1011 「リクエストが失敗しました: ゲートウェイがタイムアウトしました (504)」 UserInfo={NSUnderlyingError=0x7fdd40c18aa0 {エラー ドメイン=com.alamofire.error.serialization.response コード=-1016 「リクエストが失敗しました: 受け入れられないコンテンツタイプ: text/html」 ...など、興味深いものはありません...

ただし、コンソールには「進行中: 100%」と表示されます。さらに、ブラウザでは常にすべてのデータを取得します。したがって、私は提案します、それは私のコードの問題です。どうすればこれを解決できますか?

4

2 に答える 2

1

これらのエラーを処理するには、以下のコードを参照してください.. :)

- (void)requestFinished:(ASIHTTPRequest *)request
{
    NSString *str = [request responseString];
    NSLog(@"%@",str);
    NSMutableDictionary *dictjson = [str JSONValue];

    NSInteger iStatus = [[dictjson objectForKey:@"status"] integerValue];
    if (iStatus == 200)
    {
        //        NSMutableDictionary *dictuser = [dictjson objectForKey:@"userinfo"];
        //        [AppDelegate showMessage:@"Register successed" withTitle:@"Success"];
        [self performSegueWithIdentifier:@"sw_right" sender:nil];
    }
    else
    {
        switch (iStatus)
        {
            case 1000:
                [AppDelegate showMessage:@"Packet no field" withTitle:@"Error"];
                return;
                break;
            case 600:
                [AppDelegate showMessage:@"Email duplicated" withTitle:@"Error"];
                return;
                break;
            case 606:
                [AppDelegate showMessage:@"Register failed, Please try again." withTitle:@"Error"];
                return;
                break;

            default:
                [AppDelegate showMessage:@"Register failed, Please try again." withTitle:@"Error"];
                return;
                break;
        }
    }
}

投稿リクエスト

    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://yourApiURL"]]];

    [request setPostValue:strFirstName   forKey:@"fname"];
    [request setPostValue:strLastName    forKey:@"lname"];
    [request setPostValue:strUniversity  forKey:@"university"];
    // add post parameters so on

    [request addRequestHeader:@"Content-Type" value:@"application/json"];
    [request addRequestHeader:@"Accept" value:@"application/json"];
    [request setDelegate:self];
    [request setTimeOutSeconds:30.0];
    [request setRequestMethod:@"POST"];
    [request startAsynchronous];
于 2016-05-25T07:40:35.467 に答える