Ios 如何成功地将字符串数组作为参数alamofire传递

Ios 如何成功地将字符串数组作为参数alamofire传递,ios,swift,swift3,httprequest,alamofire,Ios,Swift,Swift3,Httprequest,Alamofire,我有一个端点,它接受字符串数组作为参数,但我无法让它与alamofire一起工作。 我用postman测试我的端点,它工作得很好,即使在浏览器中也是如此,但用alamofire它失败了,只返回整个结果(好像我没有输入任何参数) 我做错什么了吗?当我在浏览器或邮递员上转到url+“?internal_symbols=[“4250_XSAU”,“Test”]时,它工作正常 我还尝试将“GetQuoteParameters”变量设置为 let getQuoteParameters : Paramete

我有一个端点,它接受字符串数组作为参数,但我无法让它与alamofire一起工作。 我用postman测试我的端点,它工作得很好,即使在浏览器中也是如此,但用alamofire它失败了,只返回整个结果(好像我没有输入任何参数)

我做错什么了吗?当我在浏览器或邮递员上转到url+“?internal_symbols=[“4250_XSAU”,“Test”]时,它工作正常

我还尝试将“GetQuoteParameters”变量设置为

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)
    }
  }

尝试在请求中添加编码标准,如
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
中的解决方案:

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

let params: Parameters = [
  "_source": text
]
看起来非常熟悉
let text: [String] = ["location.branches.longitude", "location.branches.latitude"]

let params: Parameters = [
  "_source": text
]