【问题标题】:How to call a post web service with UrlSession.DataTaskPublisher?如何使用 UrlSession.DataTaskPublisher 调用发布 Web 服务?
【发布时间】:2020-02-11 16:15:45
【问题描述】:

我有一个简单的问题,我只能在 documentation 中看到 dataTaskPublisher,我可以使用它调用获取 Web 服务,但是如何调用可以返回发布者的发布 Web 服务?

【问题讨论】:

    标签: swift combine


    【解决方案1】:

    您可以定义一个请求并在您的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)
    

    【讨论】:

      【解决方案2】:

      使用带有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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        • 2012-04-21
        相关资源
        最近更新 更多