Вот мой запрос моего api
Но мой первоначальный запрос похож на http: //xxxxxxxxxxxxx/Service1/GetEntry.aspx? TokenID = 5edc678f-82ee-4cf8-956e-5f1d3798dfec & RID = 1 & FromDate = 01% 2F08% 2F2018 & ToDate = 25% 2F10% 2F2018
Вот мой параметр запроса и вызов API
var param = [String:Any]()
param["TokenID"] = tokenId
param["RID"] = Rid
param["FromDate"] = DateUtilities.convertStringfromDate(date: DateUtilities.getDateofMonthStartOfLast2Month())
param["ToDate"] = DateUtilities.convertStringfromDate(date: Date())
print(param)
// Network request
Alamofire.request(finalURL, method: .post, parameters: param, encoding: URLEncoding.queryString, headers: headers).responseJSON { (response: DataResponse<Any>) in
// check result is success
guard response.result.isSuccess else {
failure((response.result.error?.localizedDescription)!,"100")
return
}
if let arrResponse = response.result.value as? [[String: Any]]{
// get status code
if arrResponse[0]["Status"] as? String ?? "" == "Error"{
let statusCode = arrResponse[0][Constants.ResponseKey.code] as? String ?? "0"
if statusCode == "8"{
//Call logout api
ApplicationData.sharedInstance.logoutUser()
return
}
// get status message
let message = arrResponse[0][Constants.ResponseKey.message] as? String ?? ""
failure(message,statusCode)
return
}
success(arrResponse, "")
return
}
}
Но из-за несоответствия последовательности я не получаю желаемого ответа, я получаю ошибку в ответе api. Здесь я думаю, что это проблема alamofire, которая принимает параметры при сортировке в строку запроса. Как избежать сортировки в запросе?
Пожалуйста, помогите мне с этим.
Это проблема, я не знаю бэкенда, поэтому мне нужно отправить тот же запрос, как я описал выше.
Интересно, зачем твоему парню наотмашь нужна строка запроса по порядку !! . Общайтесь с ним. и это очень плохая практика отправлять все в строке запроса, включая токен !!
@PrashantTukadiya какое решение?
По-видимому, это уже закрытый вопрос на Alamofire. Следуйте этому ссылка.
Unfortunately Swift's dictionaries aren't order preserving, so there's no way to currently accomplish this.
Alamofire currently encodes URL parameters in alphabetical order, but there's no way to preserve an arbitrary ordering in the dictionary. So unless the order is want is a sort of some kind, or the arbitrary ordering of the dictionary.
Было бы лучше включить предложенное решение из этой проблемы Alamofire, а также объяснение. По сути, если вы хотите сохранить порядок параметров, вам нужно будет выполнить собственное кодирование параметров.
Словарь нельзя отсортировать. !! Если вы отправляете правильный параметр, вы должны поймать значение из строки запроса.