我只是想使用發布請求將簡單變數發送到服務器,我想手動完成。這是我的代碼
guard let url = URL(string: urlString "/someapi") else {
return
}
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue(String(3), forHTTPHeaderField:"Content-Length")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("text/plain", forHTTPHeaderField: "Accept")
var httpBody:Data=Data()
httpBody.append(contentsOf: "f=1".data(using: .utf8)!) //f is key & 1 value
request.httpBody = httpBody
let onComplete = {
(data:Data?,urlresponse:URLResponse?,error:Error?)->Void in
//do nothing
if let _ = error {
print("Error occured")
}
}
let task = session.dataTask(with: url, completionHandler: onComplete)
task.resume()
我正在使用燒瓶服務器來測驗這一點。在燒瓶方面,我分析了這里的請求是它的標頭內容
Accept: */*
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Accept-Encoding: gzip, deflate
User-Agent: Find%20Doctor/1 CFNetwork/1333.0.4 Darwin/21.4.0
而且燒瓶服務器正在接收 GET 請求而不是 POST 并且變數也沒有顯示在服務器中。
uj5u.com熱心網友回復:
您沒有使用request代碼中指定的 POST 運行 dataTask ,而是在 url 上執行簡單的 GET (如評論中所述)。您應該task使用request運行。
let task = session.dataTask(with: request, completionHandler: onComplete)
task.resume()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/489121.html
