0

AFNetworkingを使用してXML-RPCリクエストを投稿しようとしています。AFNetworkingライブラリは、フォームデータのスロットリングのみを提供します(throttleBandwidthWithPacketSize:delay:AFMultipartFormData)。

NSData通常のPOSTリクエストを調整するにはどうすればよいですか?

これが私の現在のコードです:

XMLRPCEncoder* encodObject = [[XMLRPCEncoder alloc] init];
[encodObject setMethod:function withParameters:[NSArray arrayWithArray:parametrs]];

NSMutableURLRequest *request = [afClient requestWithMethod:@"POST"
                                                      path:path
                                                parameters:Nil];

NSData* body = [[encodObject encode] dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:bodyRequest];

AFHTTPRequestOperation* operationAf =
    [[AFHTTPRequestOperation alloc] initWithRequest:request];

[operation setCompletionBlockWithSuccess:
    ^(AFHTTPRequestOperation *operation, id responseObject) {
        NSString* response = operation.responseString;
        NSLog(@"response %@,response");

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error%@", [error localizedDescription]);

    }];
4

2 に答える 2

2

AFHTTPClient -multipartFormRequestWithMethod:...は、関連付けられたリクエストのカスタム入力ストリームを構築するプロキシオブジェクトでブロックを取得するメソッドです。throttleBandwidthWithPacketSizeは、3Gネットワ​​ークでのバッファオーバーフローを防ぐために使用されるそのブロックプロキシオブジェクトのメソッドであり、画像などのバイナリデータを投稿する場合にのみ実際に必要です。

を使用すると、で作成された入力ストリームがHTTPボディに置き換えられるため、でsetHTTPBody:行われたすべての処理がオーバーライドされます。これをマルチパートリクエストとして実際に送信する必要がない限り(つまり、画像/ファイルの添付ファイルを使用して)、これを行う必要があります。-multipartFormRequestWithMethod:NSURLRequestNSData

実際にマルチパートが必要な場合は、コンストラクターブロックで-appendPartWithFormData:name:を使用します。

于 2013-03-24T03:35:26.740 に答える
0

AFNetWorkingのようなスロットリングをサポートしていないと思います。関数ASIHttpRequestでバイナリファイルを送信する場合にのみスロットリングを使用しmultipartFormRequestWithMethodます:)

于 2013-03-26T09:28:00.900 に答える