CURL模擬表單post提交及相關常用引數的使用(包括提交表單同時上傳檔案)
<form action="doLogin" method="post">
<input type="text" name="username" value="admin"/>
<input type="password" name="password" value="admin"/>
<button type="submit" value="submit" />
</form>
那我們的curl就應該寫成這樣
如果登陸後網頁被重定向,而我們想追蹤這個重定向的話可以加上-L引數(L必須大寫),表示追蹤重定向curl -d "username=admin&password=admin" "www.xxxx.com/doLogin"
curl -L -d "username=admin&password=admin" "www.xxx.com/doLogin"
二. 稍微複雜的情況:現在我們希望進行一些必須在登陸前提下的post請求,那就需要先儲存我們之前的成功登陸的cookie資訊,然後再攜帶登陸資訊進行post請求
1.儲存登陸cookie資訊到檔案可以通過以下2個選項中的任意一個實現
-c :儲存cookie資訊
-D:儲存整個header資訊,包括cookie curl -c cookie.txt -d "username=admin&password=admin" "www.xxx.com/doLogin"
執行後會在你執行指令的目錄下生成一個cookie.txt檔案,當然你也可以指定該檔案的建立路徑,相對路徑絕對路徑皆可(如cookie.txt可以改成 /path/cookie.txt)
2.攜帶登陸資訊進行post請求需要使用-b選項
-b:指定使用哪個檔案
示例:
三. 模擬表單檔案上傳,相當於form表單中method="POST"和enctype="multipart/form-data"的情況 這個時候就需要用到-F選項了 curl -F "[email protected]" "url" 假目前我們的檔案上傳表單是這樣的:curl -L -b cookie.txt -d "key=value" "url"
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="myfile" />
<button type="submit" value="submit" />
</form>
我們想提交一個名為hellocurl.zip的檔案,該檔案在我們指令所在的根目錄下。
那我們的curl就是這樣的
curl -F "[email protected]" "www.xxx.com/upload"
如果上傳的檔案不止一個,可以寫多個-F "[email protected]"
curl -F "[email protected]" -F "[email protected]" "www.xxx.com/upload"
再來看一個更加貼近實際的情況:很多時候,我們的表單還會包含許多其他表單元素,如text,checkbox,select等等。
現在我們在上面表單的基礎上加入更多元素,變成下面這樣:
<form action="upload" method="post" enctype="multipart/form-data">
<span style="color:#990000;"><input type="text" name="filename" value="hellocurl"/></span>
<input type="file" name="myfile" />
<button type="submit" value="submit" />
</form>
同時我們想提交hellocurl.zip檔案 這時候我們可能會想到加上-d 特別注意,這個時候我們不能同時使用-d和-F,這2個選項在curl中是兩種方式的請求,-d為application/x-www-url-encoded方式傳送post請求,而-F為multipart/form-data方式, 如果在一次curl中同時使用-d和-F選項會報Warning: You can only select one HTTP request!的警告,導致指令無法執行 這種情況下,現在網上很多給出的解決方案是通過增加-F的方式來解決 即:
curl -F "filename=hellocurl" -F "[email protected]" "www.xxx.com/upload"
但是我在一個spring mvc的專案中測試這個方法的時候發現,由於拿不到filename的值,無法繞過伺服器端的驗證,導致提交失敗
如果你也碰到類似的情況,可以嘗試下以下解決方法:
curl -F "[email protected]" "www.xxx.com/upload?key1=value1&key2=value2"
具體到當前的問題我們的curl就是:
curl -F "[email protected]" "www.xxx.com/upload?filename=hellocurl"
該方法親測通過,並且仍然是post的提交方式。
其他一些實用選項:
-v:檢視請求的整個完整的過程
-i:檢視請求頭資訊
-o:儲存響應結果到指定路徑的檔案中,如: curl -o
tmp.txthttp://www.csdn.net
#儲存響應到tmp.txt相關推薦
CURL模擬表單post提交及相關常用引數的使用(包括提交表單同時上傳檔案)
<form action="doLogin" method="post"> <input type="text" name="username" value="admin"/> <input type="password" nam
jquery的非同步提交表單(非同步上傳檔案)及jquery.form.js上傳檔案注意事項
方法一:jquery的ajax方式,通過FormaData獲取表單資料 (1)這種方式只需要jquery-1.7.js外掛; (2)通過`jquery中的FormaData類: 自動搜尋表單資訊(表單內沒有name屬性的input不會被搜尋到),IE<=9
form表單提交資料的同時上傳檔案程式碼示例
form表單提交資料的同時在表單中上傳檔案程式碼示例 一
Ajax提交表單(包括上傳檔案)
頁面程式碼: <form id="form"> <input type="file" name="file"/> <input type="text" name="name"/&g
SpringBoot通過Aspect切面實現系統日誌及Mapper異常攔截(包括日誌表設計)
最近專案中需要記錄服務端介面訪問日誌,所以在開發過程中回顧了一下AOP相關的內容,特此記錄,便於日後查閱。 1、引入依賴 <!-- 引入aop--> <dependency> <groupId>org.springframework.boo
C# HttpClient Post 引數同時上傳檔案 上傳圖片 呼叫介面
// 呼叫介面上傳檔案 using (var client = new HttpClient()) { using (var multipartFormDataContent = new MultipartFormDataContent()) { var val
SpringMVC提交資料的同時上傳檔案
1. 要點 html頁面中的表單必須是enctype=”multipart/form-data” 使用jquery-form的ajaxSubmit進行表單提交 使用SpringMVC進行處理,需要配置multipartResolver SpringMVC控制
c# 模擬表單提交,post form 上傳檔案、大資料內容
表單提交協議規定: 要先將 HTTP 要求的 Content-Type 設為 multipart/form-data,而且要設定一個 boundary 引數, 這個引數是由應用程式自行產生,它會用來識別每一份資料的邊界 (boundary), 用以產生多重資訊部份 (me
java模擬表單上傳檔案,java通過模擬post方式提交表單實現圖片上傳功能例項
package com.zdz.httpclient;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.
curl post表單上傳檔案(C++)
最近測試如何上傳檔案到伺服器。原來傳照片一致通過binary 形式傳檔案,或者把圖片base64編碼傳圖片。一致沒有用form-data 表單形式傳送資料,今天嘗試下如何使用libcurl提供的API上傳檔案。 Sample code: #include <
PHP:curl模擬form表單上傳檔案
<form action="" method="post" enctype="multipart/form-data"> <input type="file" name="upload"> <buttion>submit</button> </f
使用CURL模擬表單上傳檔案
有時需要使用PHP程式上傳檔案,其實使用PHP上傳檔案有多種方式,如果能完全模擬出HTML表單的效果這樣伺服器端就不用做任何程式碼的改動了,使用CURL完全可以實現,在PHP5.5之前使用的方式和PHP7.x、PHP5.6x中使用了新的方式,下面是程式碼示例:
PHP CURL 模擬POST請求 提交資料或上傳檔案
$file = '/doucment/Readme.txt';$ch = curl_init();$post_data = array( 'loginfield' => 'username', 'username' => 'ybb', 'password' => '1
H5用FormData物件提交表單及上傳檔案
1、如何使用 use multipart/form-data when your form includes any <input type="file"> elements. 2、怎麼
ajax 請求後臺資料(及使用FormData物件提交表單及上傳圖片)
js <script type="text/javascript"> $(function(){ $('#submit').click
關於ajax提交file上傳檔案型別的表單的一些例項及遇到的問題和解決辦法
ajax提交的表單有兩種情況: 第一種:input type型別沒有file上傳檔案型別的表單 第二種:input type型別有file上傳檔案型別的表單 之所以分為兩種:是因為原生ajax是不能提交檔案的,因為ajax與後臺的通訊是通過字串的. 第一種無file型別表單的ajax上傳方式:
servlet文件上傳2——復合表單提交(數據獲取和文件上傳)
import bmi util 3.2 utf false ons quest pat 上傳文件時表單enctype屬性必須要更改為<enctype=‘multipart/form-data‘>;采用post提交表單,元素需要有name屬性; 利用第三方jar包
建立型:單例模式及相關應用
文章目錄 單例模式(Singleton) 優缺點 重點 懶漢式實現 執行緒不安全 synchronized關鍵字 雙重校驗鎖 靜態內部類 餓漢式實現 單例模式
php CURL模擬GET、POST請求。
/** * get * @param string $url 請求地址 */ function GetHttp($url){ // 關閉控制代碼 $curl = curl_init(); // 啟動一個CURL會話 curl_setopt($curl, CURLOPT_URL, $url); curl_set
使用form表單同時實現上傳檔案和提交文字資料
使用form表單同時實現上傳檔案和提交文字資料,此示例中在後臺將檔案上傳到阿里的oss儲存伺服器中 申請oss相關賬號: endpoint = "http://oss-cn-qingdao.aliyuncs.com"; accessKeyId = "key"; accessKeySecret = "secr