如何使用 UrlSession.DataTaskPublisher 调用 post 网络服务?

How to call a post web service with UrlSession.DataTaskPublisher?

我有一个简单的问题,我只能在 documentation 中看到 dataTaskPublisher,我可以通过它调用获取网络服务,但如何调用 post 网络服务哪个可以 return 发布者?

将构造函数与 URLRequest 一起使用,并使用您需要的任何 HTTP 方法准备请求。

/// Returns a publisher that wraps a URL session data task for a given URL request.
///
/// The publisher publishes data when the task completes, or terminates if the task fails with an error.
/// - Parameter request: The URL request for which to create a data task.
/// - Returns: A publisher that wraps a data task for the URL request.
public func dataTaskPublisher(for request: URLRequest) -> URLSession.DataTaskPublisher

您可以定义一个请求并在您的 dataTaskPublisher 中调用它,如下所示:


var request =  URLRequest(url: URL(string: "url")!)
let session = URLSession.shared
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.HTTPBody = try! JSONSerialization.dataWithJSONObject(parameters, options: [])
session.dataTaskPublisher(for: request)