簡體   English   中英

Alamofire服務器請求將整數參數轉換為字符串

[英]Alamofire server requests converts integer parameters to string

我必須發送具有以下字段的請求

id:1

問題是,當我檢查apache日志時,我看到該字段的形式為

id:"1"

那不是使用Integer 1,而是得到String“ 1”。 這是我的代碼

let parameters: Parameters = [
        "viewModel":viewModel];
    let headers: HTTPHeaders = [
        "Authorization": "Bearer " + getToken(),
        "Accept": "application/json"
    ]
    Alamofire.request(setUrl(),method:.post,parameters:parameters,headers: headers).responseJSON{
        response in
        print("Response:\(String(describing:response.result.value))")

        switch response.result {
        case .success:
            self.status = true;
            if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
                self.responseString = utf8Text
            }
            self.responseJSON = JSON(response.result.value as Any)
        case .failure:
            self.status = false;
        }
        completed()
    }

在發起請求之前,我已確保所有必填字段都在Integer中。 其他字段是string,因此我正在使用[String:Any]類型的字典。我在做什么錯? 我需要確保整數字段保持整數。

將編碼設置為

JSONEncoding.default

對我來說效果很好。

請求也可以像

Alamofire.request(url, method: .post, parameters: object, encoding: JSONEncoding.default)

並且也可以與其他類型的方法一起使用!

我知道這是一個較晚的答復,可以肯定會有所幫助。 我也遇到過同樣的問題,花了幾個小時才解決。

您需要在Alamofire請求中設置編碼才能解決此問題。

編碼:JSONEncoding.default

所以請求就像

Alamofire.request(setUrl(),method:.post,parameters:parameters,encoding:JSONEncoding.default,headers:headers).responseJSON {response in

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM