0

我正在尝试使用AFNetworking发布 XML-RPC 请求。AFNetworking 库仅提供对表单数据的限制(throttleBandwidthWithPacketSize:delay:on AFMultipartFormData)。

如何限制常规NSDataPOST 请求?

这是我当前的代码:

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 网络上的缓冲区溢出,并且仅在发布图像等二进制数据时才真正需要。

UsingsetHTTPBody:会覆盖使用 完成的任何操作-multipartFormRequestWithMethod:,因为它将为 构造的输入流替换为NSURLRequestHTTPNSData正文。你应该这样做,除非你真的需要将它作为一个多部分请求发送(即带有图像/文件附件)。

如果您确实需要多部分,请在构造函数块中使用-appendPartWithFormData:name:。

于 2013-03-24T03:35:26.740 回答
0

我认为AFNetWorking不支持像这样的节流ASIHttpRequest,它仅在使用该multipartFormRequestWithMethod函数发送二进制文件时才使用节流:)

于 2013-03-26T09:28:00.900 回答