Я пытаюсь создать сервер RESTful на Erlang с помощью Cowboy, и у меня возникают проблемы из-за того, что я ничего не знаю о HTTP-запросах. Я не могу найти пример запроса на загрузку файла RESTful, только обычный.
Это работает для обычного HTTP-сервера (найденного в примерах Cowboy) для загрузки файла compile.sh
, который содержит git add * ; git commit -a -m "upload" ; git push
:
POST /upload HTTP/1.1
Host: 169.229.85.167:8080
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryd1YD0OADcYFcuL0v
Origin: http://169.229.85.167:8080
Accept-Encoding: gzip, deflate
Authorization: Basic cmltcm9jazpwYXNzd29yZA==
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.1.17 (KHTML, like Gecko) Version/7.1 Safari/537.85.10
Referer: http://169.229.85.167:8080/
Content-Length: 243
Accept-Language: en-us
------WebKitFormBoundaryd1YD0OADcYFcuL0v
Content-Disposition: form-data; name="inputfile"; filename="upload.sh"
Content-Type: application/x-sh
git add * ; git commit -a -m "upload" ; git push
------WebKitFormBoundaryd1YD0OADcYFcuL0v--
Но если я отправлю этот запрос на сервер RESTful, я получу такой ответ:
HTTP/1.1 415 Unsupported Media Type
connection: keep-alive
server: Cowboy
date: Fri, 24 Oct 2014 04:34:06 GMT
content-length: 0
content-type: text/html
vary: accept
Теперь, возможно, я неправильно сделал сервер RESTful, но я не уверен. Многое из этого инкапсулировано в Cowboy, так что я действительно не знаю, как это работает. Должен ли запрос отличаться для сервера RESTful?