**Alamofire** 在 swift 5 中的响应失败

Failed response from **Alamofire** in swift 5

我正在使用 Alamofire class 进行 api 通话。 Api 在 Postman 中正常工作 请查看以下两个屏幕截图以供参考, 在第一张图片中,数据在原始 body

中传递

在第二张图片中,数据在 Headers 字段中传递 现在我正在使用此代码调用 API

//for params i'm sending below parameters
//["phoneNumber":"911234567890", "countryCode" : "91"]

let headers: HTTPHeaders = [
            "deviceId" : deviceId,
            "osVersion": osVersion,
            "deviceType": deviceType,
            "resolution":resolution,
            "buildNumber":buildNumber]

AF.request(strURL, method: .post, parameters: params, encoding: JSONEncoding.default, headers:headers).responseData { (response) in
                switch response.result {
                case .success(let data):
                    do {
                        //let asJSON = try JSONSerialization.jsonObject(with: data)
                        let asJSON = try JSONSerialization.jsonObject(with: data, options: [.fragmentsAllowed])

                        // success
                        print(asJSON)
                        let res : NSDictionary = (asJSON as AnyObject) as! NSDictionary
                        successBlock(res)
                    } catch { // error
                        print("decoding error:\n\(error)")
                    }
                case .failure(let error):
                    print(error)
                    failure(error)
                }
            }

在上述代码的所有其他项目中,api 调用工作正常,但在这里我遇到以下错误 { 代码 = 500;数据=“”; message = "无法将类型 'java.lang.String' 的值转换为所需类型 'java.util.Locale';嵌套异常为 java.lang.IllegalArgumentException:区域设置部分“en;q=1.0”包含无效字符”; …………………… NamedValueMethodArgumentResolver.java:125)\n\t... 97 more\n";状态="INTERNAL_SERVER_ERROR";时间戳="01-03-2022 07:55:20"; } 我尝试了几种方法,例如 URLEncoding.default、传递自定义 header、创建自定义原始请求并在内部传递 header,但没有任何效果, 有人有解决这个问题的方法吗? 提前致谢。

由于它抛出与本地相关的错误,我认为某些语言已定义并且它不接受 Accept-Language header 的 *,请尝试在 [=22= 中发送“en” ] Accept-Language.

检查语言的子标签: http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry :

测试代码:

func callAPI() {
    
    let params: Parameters = ["phoneNumber":"911234567890", "countryCode" : "91"]
    let headers = [
        "deviceId" : "jdhcbkerfjkr",
        "osVersion": "3.2.3",
        "deviceType": "ANDROID",
        "resolution": "122x122",
        "buildNumber": "3.2.1",
        "Accept-Language": "en"]
    
    AF.request("[Test-URL]",
               method: .post,
               parameters: params,
               encoding: JSONEncoding.default,
               headers: HTTPHeaders.init(headers)).response { response in
        print(String(data: response.data!, encoding: .utf8)!)
    }
}