【问题标题】:Which NSURLConnection wrapper handles GET and POST equally well?哪个 NSURLConnection 包装器同样可以处理 GET 和 POST?
【发布时间】:2011-10-26 15:08:54
【问题描述】:

哪个 NSURLConnection 包装器处理 GET 和 POST 一样好?

对于 GET 方法,我更喜欢 google 的 GTMHTTPFetcher 而不是 ASIHTTPRequest。 ASIHTTPRequest 使用委托,这可能是您通常会想到的想法。但这正是我选择不使用它的确切原因,因为当您有多个连接(在我的情况下是多个连接)时,每个连接都有自己的委托,最终您会得到太多对象。或者您可以只有 1 个委托,但您已经找到了一种方法来找出哪个响应是针对哪个连接的。

在我看来,GTMHTTPFetcher 处理这种方式要好得多。它使用 1 个 SEL 进行 1 个连接,有点像目标-动作模型。代码比委托模型更简洁。

但是对于 POST 方法,ASIHTTPRequest 有 ASIFormDataRequest。我没有找到使用 GTMHTTPFetcher 进行 POST 的简单方法。它确实有 setPostData 方法来设置发布数据。但是你必须自己设置post body和那些mime参数(据我所见),这很头疼。我发现它还有另一个名为 GTMHTTPUploadFetcher 的类。但我真的不知道如何使用它(我不断收到 NSAssert “需要上传位置 hdr”)。

所以对于 POST,我想 ASIHTTPRequest 更容易。

我没有机会使用facebook-ios-sdk。并想听听其他意见。

那么 NSURLConnection 包装器是否可以很好地处理 GET 和 POST ?知道如何使用 GTMHTTPUploadFetcher 吗?

【问题讨论】:

  • ASIHTTPRequest 也可以使用块代替委托,可以用来为每个请求指定不同的选择器。

标签: objective-c http-post nsurlconnection


【解决方案1】:

GTMMIMEDocument 类用于创建一个流,用于通过 GTMHTTPFetcher(或通过其他任何采用 NSInputStream 的方法)上传。例如here

GTMMIMEDocument 保留要上传的数据部分的稀疏列表,避免在内存中重复数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-16
    • 2012-02-15
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    相关资源
    最近更新 更多