【问题标题】:How to pass an array in an url query parameter using nsurl in objective-c?如何在objective-c中使用nsurl在url查询参数中传递数组?
【发布时间】:2014-06-11 12:24:14
【问题描述】:

API 需要在 url 查询参数中传递一个数组,在 iOS 中如何实现?

我只知道如何传递单个值,例如下面的 API:?title=Design Milk&id=feed/http://feeds.feedburner.com/design-milk

API 示例:

  "title": "Design Milk",
  "id": "feed/http://feeds.feedburner.com/design-milk",
  "categories": [
    {
      "id": "user/c805fcbf-3acf-4302-a97e-d82f9d7c897f/category/design",
      "label": "design"
    },
    {
      "id": "user/c805fcbf-3acf-4302-a97e-d82f9d7c897f/category/weekly",
      "label": "weekly"
    },
    {
      "id": "user/c805fcbf-3acf-4302-a97e-d82f9d7c897f/category/global.must",
      "label": "must reads"
    }
  ]

【问题讨论】:

  • @Zaph 是的,这是一个 http POST 请求,你能告诉我怎么做吗?
  • 你需要在请求正文中设置你的参数,而不是把它们作为 URL 参数
  • 建议:更改问题标题,它声明:“查询参数”。
  • @Stonz2 你的意思是把所有的数据放到一个nsdictionary里,转换成nsdata对象,然后调用setHTTPBody方法吗?
  • 将数组(和所有其他参数/​​值)放入请求的正文中。

标签: ios objective-c nsurl


【解决方案1】:

创建一个集合,然后使用NSJSONSerialization 创建 JSON 数据表示。使用结果数据作为 POST 数据。

NSDictionary *parameters = @{
  @"title": @"Design Milk",
  @"id": @"feed/http://feeds.feedburner.com/design-milk",
  @"categories": @[
          @{
              @"id": @"user/c805fcbf-3acf-4302-a97e-d82f9d7c897f/category/design",
              @"label": @"design"
              },
          @{
              @"id": @"user/c805fcbf-3acf-4302-a97e-d82f9d7c897f/category/weekly",
              @"label": @"weekly"
              },
          @{
              @"id": @"user/c805fcbf-3acf-4302-a97e-d82f9d7c897f/category/global.must",
              @"label": @"must reads"
              }
          ]
};

NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictData options:0 error:&error];

【讨论】:

    猜你喜欢
    • 2011-09-12
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2018-01-18
    • 2010-10-17
    • 1970-01-01
    • 2022-07-07
    • 2018-07-05
    相关资源
    最近更新 更多