NSURLRequest HTTPBody与ASIHTTPRequest postBody

时间:2012-06-27 16:57:09

标签: ios asihttprequest nsurlrequest

我正在尝试将使用NSURLConnection的大多数项目的NSURLRequests转换为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的完整库,但我只是想知道是否有人有任何建议。我已阅读文档,但找不到我要找的内容。

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以查一下吗

 self.paramString

是对的吗?它看起来怎么样?

答案 1 :(得分:1)

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