我正在尝试将使用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的完整库,但我只是想知道是否有人有任何建议。我已阅读文档,但找不到我要找的内容。
谢谢!
答案 0 :(得分:1)
你可以查一下吗
self.paramString
是对的吗?它看起来怎么样?
答案 1 :(得分:1)
我最终使用了ASIFormDataRequest并设置了值和键。这似乎有用!