如何成功传递string数组作为参数alamofire

我有一个端点接受一个string数组作为参数,但我不能让它与alamofire工作。 我testing我的terminal邮递员,它工作正常,即使在浏览器,但与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”variables

 let getQuoteParameters : Parameters = [ "internal_symbols" : ["4250_XSAU", "Test"] ] 

但是两者都不起作用…应该是同样的事情。

只是为了澄清,这个请求完全忽略了我的参数,当它应该发送数组到我的后端。

你可以简单地将你的string数组转换成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) } } 

尝试在请求中添加编码标准,如JSONEncoding.default

 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, method: .post, parameters: getQuoteParameters, encoding: JSONEncoding.default).responseJSON{ response in print(response) /* if (response.result.value != nil){ let jsonResponse = JSON(response.result.value!) print(jsonResponse) } */ } 

谢谢。

我在Swift 3解决scheme:

 let text: [String] = ["location.branches.longitude", "location.branches.latitude"] let params: Parameters = [ "_source": text ]