Http
使用 Curl 的 HTTP POST 請求:為什麼沒有任何效果?
我想送出一份包含以下資訊的表格:
<form enctype="mutlipart/form-data" method="post" action="/command"> <input tyep="submit" value=" Generate Snapshot " name="GENERATE_SNAPSHOT" ></input> </form>
我嘗試使用網頁(chrome)在“網路”選項卡下發出這樣的請求,我觀察到:
`request URL:http://170.10.10.20:8888/command` Request Mehthod:POST Status Code:200 OK Request Payload: -------WebKitFormBoundaryLhRbxtNE7XU71JAD Content-Disposition: form-data; name="GENERATE_SNAPSHOT" Generate Snapshot -------WebKitFormBoundaryLhRbXtNE7Xu71JAD----
我的 Curl 命令如下所示:
curl -f "GENERATE_SNAPSHOT=%20Generate%20Snapshot%20" http://170.10.10.20:8888/command
但是返回值看起來不准確,因為它返回給我的東西看起來像:
<html><head><head><META HTTP -QUIIV="EXPIRES" CONTENT="TEXT/HTML; .....(and so on)
為什麼這不起作用?
因為您發送的不是
POST
請求,而是請求,所以curl 忽略了GET
您的請求正文。POST
此外,選項-f
用於在伺服器錯誤時靜默失敗,您正在尋找在您的請求-F
中強制使用的選項。Content-type: multipart/form-data``POST
改用:
curl -XPOST \ -F 'GENERATE_SNAPSHOT= Generate Snapshot ' \ "http://170.10.10.20:8888/command"
-F
不是-f
。_同樣在 Chrome 中,您可以右鍵點擊網路選項卡中的請求和“複製為 cURL”。
這會將 Chrome 所做的確切請求添加到剪貼板,準備好通過 cURL 執行。