2015-01-02 115 views
3

我想轉換一個curl命令(post)到一個netcat命令。將curl命令轉換爲netcat?

我已經想通了如何GET/DELETE之類的東西

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

in netcat: 

nc localhost 1234 
GET 232 
HOST: localhost 

,但我不知道如何才能發佈內容

例如:我想保存價值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。你能解釋一下爲什麼content-lenght是8,爲什麼這個類型是application/x-www-form-urlencoded?爲什麼我必須添加\ n? – user3717963

+0

通過編輯帖子添加了一些東西; curl會根據'-d'標誌自動設置這些標題;你可以用'curl -v' –

+0

檢查最後一個問題:是否需要「HOST:localhost」?我的老師給我的代碼,我可以沒有它的類型。但是,我什麼時候需要添加它? – user3717963