如何从查询参数
问题描述:
的编码块Alamofire我有一样网址:如何从查询参数
https://baseUrl/v2/orders/bookings?ourl=411093%7cMdTal8dUR6xpXXpzOiGgD1hRFnOyAHeo0Om9HeuB4Mk%3d
我用Alamofire这样的:我在创建自定义枚举类来获得URLRequestConvertible
参数和参数我传递到alamofire
Alamofire.request(HotelBookingConfirmationRouter.get(orderUrl))
.responseObject{(response: DataResponse<HotelBookingConfirmation>) in }
enum HotelBookingConfirmationRouter: URLRequestConvertible {
case get(String)
public func asURLRequest() throws -> URLRequest {
var method: HTTPMethod {
return .get
}
let url: URL = {
let url = URL(string: RBHWebServiceConfiguration.endpoint())!
return url.appendingPathComponent(HotelAPI.bookingConfirmation)
}()
let params: ([String: String]) = {
switch self {
case .get(let ticketUrl):
var dict = ["" : ""]
dict = [ "ourl" : ticketUrl]
return dict
}
}()
var urlRequest = URLRequest(url: url)
urlRequest.setValue("MOBILE_APP", forHTTPHeaderField: "channel_name")
let encoding = URLEncoding.queryString
var encodedRequest = try! encoding.encode(urlRequest, with: params)
encodedRequest.httpMethod = method.rawValue
encodedRequest.timeoutInterval = 30
return encodedRequest
}
}
登录请求,收到:
https://baseUrl/v2/orders/bookings?ourl= 411093%2547cMdTal8dUR6xpXXpzOiGgD1hRFnOyAHeo0Om9HeuB4Mk%3d
查询字符串编码,即,“2547”,而不是“7CM”
但是,我需要保持与相同参数的任何人都可以请帮我解决这个问题
答
你有一个“%”字符您查询值,当你编码百分比时,它将被替换为'%25'。
您可以在这里找到更多的信息: https://en.wikipedia.org/wiki/Percent-encoding
我的建议是,试图摆脱%的性格,如果你不能做到这一点,只需手动构建您的网址。
祝你有个愉快的一天:) 012janDejan。