我有一个接受字符串数组作为参数的端点,但我无法让它与 alamofire 一起使用。
我用邮递员测试我的端点,它工作正常,即使在浏览器中也是如此,但是使用 alamofire 它会失败并且只返回整个内容(就好像我没有输入任何参数一样)。
func getQuotes(String url){
//THIS CALL IS NOT WORKING. PARAMETERS ARE NOT SENT PROPERLY - FIX
let stringArray : [String] = ["4250_XSAU", "Test"]
let getQuoteParameters : Parameters = [
//"internal_symbols": stockInternalSymbols
"internal_symbols" : stringArray
]
print("attempting to get quotes on utility queue")
Alamofire.request(url, parameters: getQuoteParameters).responseJSON{ response in
print(response)
/* if (response.result.value != nil){
let jsonResponse = JSON(response.result.value!)
print(jsonResponse)
}
*/
}
}
难道我做错了什么?当我在浏览器或邮递员上访问 url + "?internal_symbols=["4250_XSAU","Test"] 时,它工作得很好。
我还尝试将“getQuoteParamaters”变量设置为
let getQuoteParameters : Parameters = [
"internal_symbols" : ["4250_XSAU", "Test"]
]
但它也不起作用......它应该是同一件事。
只是为了澄清,这个请求完全忽略我的参数,当它应该将数组发送到我的后端时。
您只需传递字符串数组即可将其转换为 JSON 格式。如下面给出的示例代码所示:
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let values = ["06786984572365", "06644857247565", "06649998782227"]
request.httpBody = try! JSONSerialization.data(withJSONObject: values)
Alamofire.request(request)
.responseJSON { response in
// do whatever you want here
switch response.result {
case .failure(let error):
print(error)
if let data = response.data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
case .success(let responseObject):
print(responseObject)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)