I am new in Swift and SwiftUI. I need to send a POST
request to the server when a button is clicked. The request is sent, everything is fine.
ShareHelper.swift
:
import Foundation
class ShareHelper {
var dataString: String = ""
var newsMessage: String
var newsUser: String
var newsEmail: String
var newsMedia: String
let newsAPI: String = "https://example.com/api/shareNews"
init(message: String, user: String, email: String, media: String) {
self.newsMessage = message
self.newsUser = user
self.newsEmail = email
self.newsMedia = media
self.RequestPost()
}
func RequestPost() {
let url = URL(string: self.newsAPI)
guard let requestUrl = url else { fatalError() }
var request = URLRequest(url: requestUrl)
request.httpMethod = "POST"
let postString = "message=\(self.newsMessage)&user=\(self.newsUser)&email=\(self.newsEmail)&media=\(self.newsMedia)"
request.httpBody = postString.data(using: String.Encoding.utf8)
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if error != nil {
return
}
if let data = data, let dataString = String(data: data, encoding: .utf8) {
self.dataString = dataString
}
}
task.resume()
}
}
Button from ContentView.swift
Button(action: {
let shareHelper = ShareHelper(message: self.textAreaText, user: self.inputUser, email: self.inputEmail, media: self.inputMedia)
shareHelper.RequestPost()
print("Share helper: \(shareHelper.dataString)")
}, label: {
Text("Send")
})
How to make a message appear in the console if POST
request successful sending?