2015-01-02 6 views
3

Я пытаюсь преобразовать команду curl (post) в команду netcat.Преобразование команды curl в netcat?

Я уже понял, как GET/DELETE вещи, как

curl -v http://localhost:1234/232 

in netcat: 

nc localhost 1234 
GET 232 
HOST: localhost 

, но я не знаю, как POST-то

Например: Я хочу, чтобы сохранить значение 2300 на моем пути 123

curl -v --data "val=2300" http://localhost:1234/123 

and in netcat: 
nc localhost 1234 
POST 123 
HOST: localhost 

but where do i write my value? 

ответ

2
nc localhost 1234 
POST /123 HTTP/1.0 
Content-Length: 8 
Content-Type: application/x-www-form-urlencoded 
\n 
val=2300 

Content-Length установлен, чтобы позволить серверу знать, сколько данных вы собираетесь отправить (длина строки "val = 2300"). Content-Type означает, что сервер знает, в каком формате данные (закодированы в форме). \n - это символ разделения HTTP (пустая строка) между заголовками и данными.

+0

ах прохладно. Это сработало: D. Можете ли вы объяснить мне, почему длина контента равна 8, и почему тип является application/x-www-form-urlencoded? и почему я должен добавить \ n? – user3717963

+0

добавил некоторые вещи, отредактировав сообщение; curl автоматически установит эти заголовки на основе флага '-d'; вы можете проверить, что с 'curl -v' –

+0

Последний вопрос: нужен ли« HOST: localhost »? Мой учитель просто дал мне код, и я могу напечатать его без него. Но когда я должен добавить его? – user3717963

Смежные вопросы