带参数的 CURL 请求的 Alamofire

Posted

技术标签:

【中文标题】带参数的 CURL 请求的 Alamofire【英文标题】:Almofire with URLRequest with parameter 【发布时间】:2018-04-05 09:18:13 【问题描述】:

我在我的应用程序中使用 Almofire。我如何在使用.get 方法时使用字典。我的代码如下:

func validMemberId(completion: @escaping CompletionHandler)
    guard let cookie = self.cookies else 
        return
    
    let isRegisterMemberUrl = createUrl(with: checkRegisterMemberIdUrl)

    var isRegisterMemberRequest = URLRequest(url: isRegisterMemberUrl)
    isRegisterMemberRequest.httpMethod = HTTPMethod.get.rawValue
    isRegisterMemberRequest.allHTTPHeaderFields = HTTPCookie.requestHeaderFields(with: cookie)
    Alamofire.request(isRegisterMemberRequest).responseString  (response) in
         (response) in
            if response.result.isSuccess && response.response?.statusCode == 200 
            
        

我想使用 Get 方法和 URLRequest 一起传递这本字典,我的字典 [String: Any] = ["ID": "001110"]

【问题讨论】:

【参考方案1】:

参数应该是Dictionary(键,值)

获取请求不需要设置方法

let parameters: Parameters = ["foo": "bar"]

Alamofire.request("https://httpbin.org/get", parameters: parameters) // encoding defaults to `URLEncoding.default`

如果您想发出post 请求,您只需添加method

let parameters: Parameters = ["foo": "bar"]

Alamofire.request("https://httpbin.org/post", method: .post, parameters: parameters)

【讨论】:

【参考方案2】:

Manual Parameter Encoding of a URLRequest

ParameterEncoding API 可以在发出网络请求之外使用。

let url = URL(string: "https://httpbin.org/get")!
var urlRequest = URLRequest(url: url)

let parameters: Parameters = ["foo": "bar"]
let encodedURLRequest = try URLEncoding.queryString.encode(urlRequest, with: parameters)

Alamofire.request(encodedURLRequest)

【讨论】:

以上是关于带参数的 CURL 请求的 Alamofire的主要内容,如果未能解决你的问题,请参考以下文章

带 json 参数的 curl GET 请求

Linux下使用curl get请求 参数带[]的情况

210629:Linux中使用curl命令发送带参数的get请求和post请求-Redis中常用命令

curl提交请求时,如何把cookie带过去

记录:http接口测试必学之curl命令

每天一个linux命令curl