У меня есть простое представление Django, которое я использую для (очень грубой) проверки выполнения запросов POST с прикрепленным аудиофайлом. Представление просто:
@csrf_exempt
def create_from_audio(request):
return HttpResponse("accepted")
Но в моей логи геройки я вижу:
2018-10-31T23:55:02.018787+00:00 heroku[router]: sock=backend at=error code=H18 desc="Server Request Interrupted" method=POST path="/polls/create_from_audio" host=XXX request_id=e3608c6e-8c91-440a-ade4-b854e1f72f07 fwd="174.62.90.138" dyno=web.1 connect=0ms service=163ms status=503 bytes=199 protocol=https
Вот код для отправки запроса:
let url = URL(string:"...")!
let session = URLSession.shared
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("audio/m4a", forHTTPHeaderField: "Content-Type")
request.httpBody = data
let task = session.dataTask(with: request) { data, response, error in
if let error = error {
NSLog("send error: \(error.localizedDescription)")
self.showLoading(message: "error sending", error: true)
} else {
guard let response = response as? HTTPURLResponse else { return }
NSLog("send complete, response: \(response.statusCode)")
if let pendingMessage = self.pendingNewMessage {
self.conversation.messages.append(pendingMessage)
self.refreshUI()
}
}
}
task.resume()
(Я понимаю, что в производственной среде было бы лучше загрузить непосредственно на s3, но в моем случае я просто пытаюсь проверить грубую скорость загрузки файлов с помощью базовой реализации.)