使用 HTTP 将结构 Codable 发布为使用 Alamofire 的 JSON 数组
Posted
技术标签:
【中文标题】使用 HTTP 将结构 Codable 发布为使用 Alamofire 的 JSON 数组【英文标题】:Post with HTTP a struct Codable as a JSON array with Alamofire 【发布时间】:2019-04-19 10:51:13 【问题描述】:我正在使用 Swift 4.2、Xcode 10.2.1 和 Alamofire 4.8.2
注意:我曾经使用 Alamofire 5,但还没有文档
我有这个可编码的:
struct User: Codable
var name : String
var lastname : String
var email : String
var passwd : String
var grade: String
var img: String
然后我为每个变量分配一个 nameField 值。
let user = User(name: nameField.text!, lastname: lastnameField.text!, email: emailField.text!, passwd: passwdField.text!, grade: gradeField.text!, img: base64ImageString)
我将此提交给我的函数,
submitRegistration(for: user)
然后在我的函数中使用 Alamofire
func submitRegistration(for user: User)
Alamofire.request("https://httpbin.org/post", method: .post, User: user, encoding: JSONEncoding.default)
然后我收到以下错误:
对成员'request(_:method:parameters:encoding:headers:)'的模糊引用
【问题讨论】:
***.com/questions/47685241/… 【参考方案1】:这对我有用
Ambiguous reference to member 'upload(_:to:method:headers:interceptor:)'
或者试试这个方法
func postJSON()
let url = "Your URL"
let parameters = ["name":tFname.text!,"Lastname":tFLastname.text!,"password":tFpassword.text!,"email":tFemail.text!,"address":tVaddress.text!] as NSDictionary
AF.request("http://XXXXXXXXXXXXXXX/register", method: .post, parameters: (parameters as! Parameters), encoding: JSONEncoding.default)
.responseJSON response in
print(response)
switch response.result
case .success:
print(response)
case .failure(let error):
print(error)
【讨论】:
问题是我的 let = 用户在一个文件中,而函数在另一个文件中以上是关于使用 HTTP 将结构 Codable 发布为使用 Alamofire 的 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章
如何使用解码器将给定 JSON 中 Double 类型的 Codable 属性转换为 Date?
Swift 根据响应类型为 JSON 字段值动态选择 Codable 结构