AlamofireImage:如何使用 POST 请求下载图像
AlamofireImage: How to downdload images with POST request
AlamofireImage 似乎一般应该使用 GET 方法请求。但是在我们的项目中,要下载图像,我们必须使用 POST 方法请求,因为我们发送了访问令牌。我在 Stack Overflow 中搜索了类似的问题,但找不到足够的答案。有谁知道如何使用 POST 请求下载?
URL如下:
https://host_name/project_name/GetImage
您可以使用 UIImageView
的 AlamofireImage
扩展中的 af_setImage
方法并传递任何 URLRequestConvertible
参数。例如,使用 Alamofire 初始化程序创建 URLRequest
实例:
let urlPath = "https://host_name/project_name/GetImage"
if var imageRequest = try? URLRequest(url: urlPath, method: .post) {
imageRequest.addValue("token", forHTTPHeaderField: "token_field")
imageView.af_setImage(withURLRequest: imageRequest)
}
因为我们必须在HTTPBodyData中发送参数,根据Loe的回答,我对我们的代码做了一些修改。以下是我们的新代码:
let urlPath = "https://host_name/project_name/GetImage"
let parameters:[String: Any] = [
"token": "tokenValue",
"imageName": "imageName"
]
let dataRequest = Alamofire.request(urlPath,
method: HTTPMethod.post,
parameters: parameters,
encoding: JSONEncoding.default,
headers: [:])
guard let imageRequest = dataRequest.request else {
return
}
imageView.af_setImage(withURLRequest: imageRequest)
重点是首先,我们创建一个DataRequest
对象,然后用Alamofire.request()
方法将其转换为URLRequest
类型。
AlamofireImage 似乎一般应该使用 GET 方法请求。但是在我们的项目中,要下载图像,我们必须使用 POST 方法请求,因为我们发送了访问令牌。我在 Stack Overflow 中搜索了类似的问题,但找不到足够的答案。有谁知道如何使用 POST 请求下载?
URL如下:
https://host_name/project_name/GetImage
您可以使用 UIImageView
的 AlamofireImage
扩展中的 af_setImage
方法并传递任何 URLRequestConvertible
参数。例如,使用 Alamofire 初始化程序创建 URLRequest
实例:
let urlPath = "https://host_name/project_name/GetImage"
if var imageRequest = try? URLRequest(url: urlPath, method: .post) {
imageRequest.addValue("token", forHTTPHeaderField: "token_field")
imageView.af_setImage(withURLRequest: imageRequest)
}
因为我们必须在HTTPBodyData中发送参数,根据Loe的回答,我对我们的代码做了一些修改。以下是我们的新代码:
let urlPath = "https://host_name/project_name/GetImage"
let parameters:[String: Any] = [
"token": "tokenValue",
"imageName": "imageName"
]
let dataRequest = Alamofire.request(urlPath,
method: HTTPMethod.post,
parameters: parameters,
encoding: JSONEncoding.default,
headers: [:])
guard let imageRequest = dataRequest.request else {
return
}
imageView.af_setImage(withURLRequest: imageRequest)
重点是首先,我们创建一个DataRequest
对象,然后用Alamofire.request()
方法将其转换为URLRequest
类型。