0

我正在尝试将项目的大部分使用 NSURLConnection 的 NSURLRequest 转换为 ASIHTTPRequest 调用。我遇到了一个关于在 ASIHTTPRequest 中设置 HTTPBody 的问题。这是我对 NSURLRequest 调用的内容:

NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.urlString]];
[req setHTTPMethod:@"POST"];
[req setHTTPBody:[self.paramString dataUsingEncoding:NSUTF8StringEncoding]];
[self _sendRequest:req];

要转换为 ASI,这就是我目前所拥有的:

__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:self.urlString]];
[request setRequestMethod:@"POST"];
[request appendPostData:[self.paramString dataUsingEncoding:NSUTF8StringEncoding]];
[request setCompletionBlock:^{
    NSLog(@"ASIHTTP request finished: %@", [request responseString]);
    // Do stuff here
}];
[request setFailedBlock:^{
    NSError *error = [request error];
    NSLog(@"ASIHTTP error: %@", [error description]);
}];
[request startAsynchronous];

虽然当我用 ASI 运行它时,我得到了这个错误:

ASIHTTP error: Error Domain=ASIHTTPRequestErrorDomain Code=6 "Unable to start HTTP connection" UserInfo=0x10ddf6b0 {NSLocalizedDescription=Unable to start HTTP connection}

编辑此错误已修复,但由于未设置正文,数据仍未正确传输。

我认为这与我没有正确设置身体有关。我尝试使用 ASI 的 setPostBody,但只产生了相同的结果。这适用于 NSURLRequest,但不适用于 ASI。我很确定这真的很简单,而且我还没有探索过 ASI 的完整库,但我只是想知道是否有人有任何建议。我已阅读文档,但找不到所需的内容。

谢谢!

4

2 回答 2

1

你能检查一下吗

 self.paramString

是正确的?它看起来怎样?

于 2012-06-27T17:06:53.130 回答
1

我最终使用了 ASIFormDataRequest 并设置了值和键。这似乎奏效了!

于 2012-06-27T19:25:38.917 回答