【问题标题】:NSURLRequest HTTPBody vs. ASIHTTPRequest postBodyNSURLRequest HTTPBody 与 ASIHTTPRequest postBody
【发布时间】:2012-06-28 03:25:38
【问题描述】:

我正在尝试将项目的大部分使用 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}

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

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

谢谢!

【问题讨论】:

    标签: ios asihttprequest nsurlrequest


    【解决方案1】:

    你能检查一下吗

     self.paramString
    

    正确吗?它看起来怎么样?

    【讨论】:

    • 是的,我现在正在检查它。原来有一些奇怪的字符串问题正在删除 http:// 区域中的正斜杠。我会解决这个问题并更新出现的其他问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多