【问题标题】:Passing parameters to REST API calls from Objective-C从 Objective-C 将参数传递给 REST API 调用
【发布时间】:2013-08-01 07:03:52
【问题描述】:

调用 REST Web 服务非常简单 - 我使用原生 NSURLConnection 类及其委托方法:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"webServiceURL"]];

    [request setHTTPMethod:@"GET"];

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

但是如何将对象参数传递给调用?例如,如果 Web 服务需要一个对象 UserInfo { name:string, age:int}

现在这个调用只有两个参数 - 我也在考虑可能需要在请求中传递更多参数的情况。

这样做的正确方法是什么?我听说过 RestKit 并计划尽快尝试,但是没有第三方库有什么好的方法吗?

【问题讨论】:

  • URL 或请求正文中的参数?
  • 在请求正文中。在 URL 中可以,但如果我必须传递 10 个参数,则 url 长度会变得太长。我尝试了[request setValue:@"user1" forHTTPHeaderField:@"username"];,但 REST Web API 无法识别传递的参数。

标签: objective-c web-services rest


【解决方案1】:

通常在执行 GET 时,您会将参数添加到 URL。为此,只需将查询字符串添加到用于生成 URL 的字符串的末尾。

如果您正在执行 POST,那么您通常会将参数添加到请求正文中。这是通过将参数转换为NSData 并在request 上调用setHTTPBody: 来完成的。

【讨论】:

  • 没想到这么简单。谢谢! GET 请求与查询字符串参数一起正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
相关资源
最近更新 更多