2017-02-16 51 views
0

的编码块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”

但是,我需要保持与相同参数的任何人都可以请帮我解决这个问题

回答

0

你有一个“%”字符您查询值,当你编码百分比时,它将被替换为'%25'。

您可以在这里找到更多的信息: https://en.wikipedia.org/wiki/Percent-encoding

我的建议是,试图摆脱%的性格,如果你不能做到这一点,只需手动构建您的网址。

祝你有个愉快的一天:) 012janDejan。