向 Openhab2 和 Swift 发布 API 请求



我正在尝试从我正在开发的自定义 Swift iOS 应用程序向我的 Openhab 系统发布请求,但我似乎无法得到响应。

我正在使用以下内容,但无法触发传感器。

AF.request("http://192.168.1.1:8080/rest/items/BinarySensor", method: .post, parameters: ["":"ON"], encoding: URLEncoding.httpBody, headers: ["Content-Type":"text/plain"])

任何帮助表示赞赏。

您需要将编码更改为JSONEncoding.default,并将标头更改为application/json。以下是您的请求现在的样子

AF.request("http://192.168.1.1:8080/rest/items/BinarySensor", method: .post, parameters: ["":"ON"], encoding: JSONEncoding.default, headers: ["Content-Type":"application/json"])

我走上了一条不同的道路。不使用 Alamofire,只使用标准的 Swift 网络。Postman 允许为特定请求创建多个不同的语言代码块,以便使用它生成的请求。

如果有人想知道如何在没有阿拉莫火的情况下做到这一点,答案如下。

import Foundation
var semaphore = DispatchSemaphore (value: 0)
let parameters = "OFF"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string:"http://192.168.x.x:8080/rest/items/BinarySensor")!,timeoutInterval: Double.infinity)
request.addValue("text/plain", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in 
guard let data = data else {
return
}
semaphore.signal()
}
task.resume()
semaphore.wait()

我相信有更好的方法,但这种方法有效。

相关内容

  • 没有找到相关文章

最新更新