如何在 moya 中通过 POST 请求传递 JSON 正文
Posted
技术标签:
【中文标题】如何在 moya 中通过 POST 请求传递 JSON 正文【英文标题】:How to pass the JSON body with POST request in moya 【发布时间】:2018-01-21 16:10:16 【问题描述】:我正在使用moya library 发出 POST 请求。在 TargetType 中,我看不到任何属性来传递参数 [JSON 正文] 以及 POST 请求。在这里,我附上 TargetType
public protocol TargetType
/// The target's base `URL`.
var baseURL: URL get
/// The path to be appended to `baseURL` to form the full `URL`.
var path: String get
/// The HTTP method used in the request.
var method: Moya.Method get
/// Provides stub data for use in testing.
var sampleData: Data get
/// The type of HTTP task to be performed.
var task: Task get
/// Whether or not to perform Alamofire validation. Defaults to `false`.
var validate: Bool get
/// The headers to be used in the request.
var headers: [String: String]? get
public extension TargetType
var validate: Bool
return false
【问题讨论】:
我添加了图书馆的链接。也就是说,发布指向您正在寻求帮助的图书馆的链接总是一个好主意。 【参考方案1】:最后,我找到了解决问题的方法。在 Moya 10.0 中,我们可以在任务属性 [TargetType] 中传递 http 正文 JSON 负载。
点击here参考
var task: Task
switch self
case .zen, .showUser, .showAccounts: // Send no parameters
return .requestPlain
case let .updateUser(_, firstName, lastName): // Always sends parameters in URL, regardless of which HTTP method is used
return .requestParameters(parameters: ["first_name": firstName, "last_name": lastName], encoding: URLEncoding.queryString)
case let .createUser(firstName, lastName): // Always send parameters as JSON in request body
return .requestParameters(parameters: ["first_name": firstName, "last_name": lastName], encoding: JSONEncoding.default)
【讨论】:
唯一的区别是编码参数?有点奇怪。以上是关于如何在 moya 中通过 POST 请求传递 JSON 正文的主要内容,如果未能解决你的问题,请参考以下文章