【问题标题】:passing nested dictionary in url request issue swift在 url 请求问题中快速传递嵌套字典
【发布时间】:2020-12-31 00:45:00
【问题描述】:

我正在尝试使用 URL 请求将嵌套字典传递给服务器。

我尝试以下字典格式:

var pdictData = ["post_id":"JobListObj.JobID","comment":txtMsg.text,"rating[price]":viewPrice.rating,"rating[service]":viewService.rating,"rating[location]":viewLocation.rating,"rating[quality]":viewQuality.rating] as [String : Any]

它根本不工作告诉我请传递评级数据

这是我的 web api 开发人员建议的格式:

post_id:1830
comment:Rateing again
rating[quality]:1
rating[location]:1
rating[service]:1
rating[price]:1

【问题讨论】:

  • 参数应该是URL编码的?另外,您可以发布一个来自邮递员的工作示例吗?
  • @matt 尝试使用评级字典对象无效,谢谢。
  • @gcharita ,感谢它使用 url 编码使用相同的参数结构为我工作。
  • 如果问题得到解决,请回答您自己的问题,否则将其删除。谢谢。

标签: ios arrays json swift dictionary


【解决方案1】:

这种格式对我来说看起来很陌生,可能你应该在请求正文而不是 url 参数上传递这个数据。尝试分享有关您的问题的 API 文档(如果是公开的)。

我猜你想使用 post 方法发送数据。所以,你需要创建一个这样的结构。

struct Job: Codable {
   let post_id: Int
   let comment: String 
   let rating: Rating  
}

struct Rating: Codable { 
   let quality: Int
   let location: Int
   let service: Int
   let price: Int
}

然后配置你的请求:

let job = Job( .... )
let data = try? JSONEncoder().encode(job)
let url = URL(string: "MY_HOST")
var request = URLRequest(url: url)
request.httpBody = data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    相关资源
    最近更新 更多