我正嘗試使用Swift在iOS應用上使用mailgun發送電子郵件。拋開安全性不足,我總是得到一個400
錯誤。如果我更改了一下密鑰,我會得到一個401
,所以驗證工作。嘗試在iOS上使用mailgun發送電子郵件時出現錯誤400
無論我用Alamofire:
let parameters = ["Authorization" : "api:key-...",
"from": "[email protected]",
"to": "[email protected]",
"subject": "Test",
"text": "Testing email"]
alamofireManager.request("https://api.mailgun.net/v3/sandbox...mailgun.org/messages", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil)
.authenticate(user: "api", password: "key-...")
.validate(statusCode: 200 ..< 300)
.validate(contentType: ["application/json"])
.responseJSON { response in
print(response)
print("Response : \(response.error)")
}
或者NSMutableURLRequest:
let session = URLSession.shared
let request = NSMutableURLRequest(url: URL(string: "https://api.mailgun.net/v3/sandbox...mailgun.org/messages")!)
request.httpMethod = "POST"
let credentials = "api:key-..."
request.setValue("Basic \(Data(credentials.utf8).base64EncodedString())", forHTTPHeaderField: "Authorization")
let data = "from:Test<([email protected])>&to:[[email protected],([email protected])]&subject:Hello&text:Testing_email"
request.httpBody = data.data(using: String.Encoding.ascii)
let task = session.dataTask(with: request as URLRequest, completionHandler: {(data, response, error) in
if let error = error {
print(error)
}
if let response = response {
print("url = \(response.url!)")
print("response = \(response)")
let httpResponse = response as! HTTPURLResponse
print("response code = \(httpResponse.statusCode)")
}
})
task.resume()
我總是得到400
。我沒有看到我的參數有什麼問題。任何想法?
由於格式錯誤,服務器無法理解請求。客戶端不應該在沒有修改的情況下重複請求。 –
檢查你的網址和請求正文 –
URL好像我改變了一些東西,我得到了一個'404'。是的,我猜這個問題可能來自請求主體,但我看不到任何錯誤,提示我的帖子在這裏。 – Nico