Я пытаюсь передать простую модель из приложения Swift iOS на сервер с файлом Go. Это мой код Swift, в основном украденный из другого вопроса здесь:
import Foundation
import UIKit
var str = "Hello, playground"
func submitPost(post: PartOneModel) {
print("senting data")
var urlComponents = URLComponents()
urlComponents.scheme = "https"
urlComponents.host = "jsonplaceholder.typicode.com"
urlComponents.path = "/posts"
guard let url = urlComponents.url else { fatalError("Could not create URL from components") }
// Specify this request as being a POST method
var request = URLRequest(url: url)
request.httpMethod = "POST"
// Make sure that we include headers specifying that our request's HTTP body
// will be JSON encoded
var headers = request.allHTTPHeaderFields ?? [:]
headers["Content-Type"] = "application/json"
request.allHTTPHeaderFields = headers
// Now let's encode out Post struct into JSON data...
let encoder = JSONEncoder()
do {
let jsonData = try encoder.encode(post)
// ... and set our request's HTTP body
request.httpBody = jsonData
print("jsonData: ", String(data: request.httpBody!, encoding: .utf8) ?? "no body data")
} catch {
print("error1")
}
// Create and run a URLSession data task with our JSON encoded POST request
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task = session.dataTask(with: request) { (responseData, response, responseError) in
guard responseError == nil else {
print("error2")
return
}
// APIs usually respond with the data you just sent in your POST request
if let data = responseData, let utf8Representation = String(data: data, encoding: .utf8) {
print("response: ", utf8Representation)
} else {
print("no readable data received in response")
}
}
task.resume()
}
Прямо сейчас, код просто передает модель go на сервер, который просто отправляет его обратно. Я хочу, чтобы он мог быть принят файлом Go, который, в свою очередь, анализирует его и выполняет некоторые другие действия с данными. Это PartOneModel
, если это помогает:
import Foundation
struct PartOneModel: Encodable {
let teacher: String
let complaintType: String
let teacherIsTrue: Bool
let repsIsTrue: Bool
let customIsTrue: Bool
let customText: String
}
Файл JSON анализируется в ViewController из простого блока AWS, и из этого файла вызывается функция submitPost
. Я искал, но не нашел объяснения, как принимать данные с Go. Любое направление или помощь будет высоко ценится! Оставаться здоровым.