0

私は持っている

-(void)requestFailed:(ASIHTTPRequest *)request
{
    NSError *error = [request error];
    NSLog(@"Request Failed Error: %@", error);
}

私が私の要求をするとき、私はする

    //add data to the array
    NSString *json = [array JSONRepresentation];
[request appendPostData:[json dataUsingEncoding:NSUTF8StringEncoding]];

[request startAsynchronous];

ログにこれを取得しています:

 0-08-11 16:52:11.652 MyProject[11720:207] Starting asynchronous request <ASIHTTPRequest: 0x5a7df10>

2010-08-11 16:52:11.861 MyProject[11720:207] リクエストがデータのダウンロードを終了しました 2010-08-11 16:52:11.861 MyProject[11720:207] リクエストが失敗しました: (gdb)

しかし、私のログステートメント

 -(void)requestFailed

が呼び出されていません。何か案は?

乾杯

4

2 に答える 2

1

-requestFailed: リクエストを完了できない場合にのみ返されます。サーバーへの接続に失敗したか、サーバーが http プロトコルに準拠していませんでした。

If request can be completed, requestFinished will be called, and you can then check the http status code there, which may indicate a failure. responseStatusText may give more information as to what the failure was.

于 2010-08-12T12:19:36.207 に答える
1

リクエストdelegatedidFailSelectorプロパティを設定しましたか? いつもの:

[request setDelegate:self];
[request setDidFailSelector:@selector(requestFailed:)];

-requestFailed:メソッドが同じクラス実装ファイルにある場合は十分です。

またdidFinishSelector、リクエストが正しく終了したときにローカル セレクターを呼び出すようにプロパティを設定します。

于 2010-08-11T22:47:45.333 に答える