❶ 記一次curl post請求數據被截斷問題處理
通過linux curl 命令和php腳本的curl請求一個介面地址,返回的json數據比較大,結果只獲取到部分數據,並且linux curl終端還報了個錯,如下:
curl: (18) transfer closed with outstanding read data remaining
懷疑服務端有異常,查看nginx日誌發現
nginx[warn]:an upstream response is buffered to a temporary
雖然是個warn,但出現問題的時候也一樣要警示。信簡豎
於在nginx.conf 的http 里加入如下一段:
加大buffer的配置,居然沒管用
後經查,負載均衡採用的nginx反向滑大代理,於是到nginx代理伺服器上,http里加入如下一段:
問題解決。
分析:
Nginx 的 buffer 機制,對於來自 FastCGI Server 的 Response,Nginx 將其緩沖到內存中,然後依次發送到客戶端。緩沖區的大小由 fastcgi_buffers 和 fastcgi_buffer_size 兩個值控制。fastcgi_buffer_size 則是處理 Response 時第一個緩沖區的大小,不包含在fastcgi_buffers中,如上配置
最大內存緩沖區大小是 8 * 128 + 4 = 1028K
當 Response的內容 小於等於 1028K 時,所有數據當然全部在內存中處理。如果 Response 大於 1028K ,多出來的數據會被臨時寫入到文件中,放在fastcgi_temp目錄下面。此時會在看到類似如下 warning:
這個值太小,Nginx 會頻繁讀寫硬碟,影響性能,太大也不好,會吃掉內存,所咐老以根據實際Response的內容大小來定。
❷ 如何用Curl 來post xml 數據
因為登陸岩圓服務升級,密碼策略變更,羨數以前的測試腳本中的用戶密碼已經不能登陸,試圖通過API直接更改密碼,一種是直接update,一種是change,使用curl的時候均未成功。
最後索性重新用curl命令創建新的用戶,一番摸索下來,注冊用戶僅支持私有埠。剩下的問題就是如何使用curl來postxml 文件。
經過一番查找,終於找到了curl使用post的命令:
[java] view plain
echo '<?xml version …>'|curl -X POST -H 'Content-type:text/xml' -d @- 10.206.30.32:8081/loginregistration/register
其中<?xml version …>就是要post的xml 文件,8081是私有埠粗派塌。
例子:
Request:
[java] view plain
echo '<?xml version="1.0" encoding="utf-8" ?><user>......</user>'|curl -X POST -H 'Content-type:text/xml' -d @- 10.206.30.32:8081/loginregistration/register
Response:
[java] view plain
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user>......</user>
❸ Linux系統中curl get、post請求
一:curl get請求
二:curl post請求
備註:PHP中可以使用http_build_query()函數,處理curl post參數,使其支持多維數組傳遞
轉自: www.cnblogs.com/z-books/p/6228284.html
❹ curl命令行 get/post請求
GET請求:
curl -X GET --header'Accept: application/json''http://XXX?phone=XXX&content=XXX'
POST請求:
curl -X POST --header'輪灶州Content-Type: application/json'--header'Accept: application/json'-d'{"辯啟phone":"臘蔽XXX","content":"XXX"}''http://XXX'
❺ 批處理調用post
您是想問批處理如何調用post?您可以使用curl命令來調用。
這個crul命令為curl-d「param1=value1¶m2=value2」-XPOSThttp://example.com/path。
其中,-d參數表示發送的POST請求的陵臘數據,多個參數使用碧汪攔&符號連接,-X參數指定請求的方法為POST,後悔胡面跟著請求的URL地址。
❻ Curl命令詳解
-#, --progress-bar
顯示進度條
-b, --cookie <name=data>
使用cookie。如果沒有 = , 則表示cookie文件路徑 (參考 -c )
-c, --cookie-jar <file name>
response的cookie保存路徑
-d, --data <data>
POST請求數據
-f, --fail
忽略錯誤信息 (不顯示返回的HTML錯誤信息)
-F, --form <name=content>
表單數據
-H, --header <header>
設置請求Header
-i, --include
輸出請求Header信息
-I, --head
只顯示Header信息
-k, --insecure
允許不安全鏈接
-L, --location
Follow redirects.
-o, --output <file>
輸出信息保存到指定文件中。可與 --create-dirs 一起使用,自動創建文件路徑
-O, --remote-name
輸出信息寫到文件中,文件名同伺服器端的文件名 (只能寫入到當前目錄)
-s, --silent
靜默模式。與 -S 一起用,強制輸出errors信息
-v, --verbose
顯示更多信息(用於調試).
-w, --write-out <format>
請求結果後追加內容。例如, -w "\n" 可以在輸出結果後追加一個換行符。可以把 -w "\n" 添加到 ~/.curlrc 文件中,這樣每次執行結果後都自動追加換行符(默認curl返回內容最後缺少換行符,顯示不友好)
-X, --request
請求方法類型,POST、GET、PUT等
使用 POST 或 PUT 請求時, 可用 Content-Type 指定兩種數據格式:
curl默認為表單格式。如果使用json格式,需要手動設置header。
對於 POST 和 PUT 請求, 以下是通用參數:
application/x-www-form-urlencoded 為默認值:
等效於:
也可以使用數據文件:
或使用數據文件:
❼ Linux運維命令Curl - 日常用法總結
在Linux系統中,curl是一個利用URL規則在命令行下工作的文件傳輸工具,可以說是一款很強大的http命令行工具。它支持文件的上傳和下載操作,是綜合傳輸工具,習慣上稱url為下載工具。下面就日常運維中基於curl命令使用做下總結
一、Curl命令用法
1. curl語法和參數選項
# curl [option] [url]
curl常見參數
2. curl使用說明
curl是一種命令行工具,作用是發出網路請求,然後得到和提取數據,顯示在"標准輸出"(stdout)上面。它支持多種協議,下面說下curl命令的日常使用示例:
3. curl上傳文件的用法(POST請求方式)
一般來說,我們都會用curl下載網頁,但是curl上傳文件則不常用。下面說下curl模擬"multipart/form-data"形式的form上傳文件, 命令稍稍復雜些。
4. curl常用示例
5. curl命令的超時時間
二、Curl的GET、POST、PUT、DELETE請求
1. GET、POST、PUT、DELETE含義與區別
2. GET、POST、PUT、DELETE四種請求方式的curl訪問
❽ curl命令詳解是什麼
在Linux中curl是一個利用URL標准在cmd下工作中的文件傳送工具,能夠算是一款很強悍的httpcmd工具。它支持文檔的發送和下載,是綜合性傳送工具,但按傳統式,習慣性稱Curl為下載工具。
1、curl指令是一個網路工具,其關鍵功能是根據http、ftp等方法下載文檔,也可以文件上傳,作為一個功能齊全的網路工具,curl指令與此同時支持HTTPS等諸多協議書,還支持POSTcookies驗證從特定偏位處下載一部分文檔,客戶代理商字元串數組、速度限制、圖片大小、時間軸等特點。
2、CURL是一個利用URL英語的語法在cmd下工作中的文件傳送工具,1997年初次發售。它支持上傳文件和下載,因此是綜合性傳送工具,但按傳統式,習慣性稱CURL為下載工具。
3、CURL還涵蓋了用以軟體開發的libcurl。cURL支持的通訊協議有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
❾ Curl 命令
一、基礎請求
1、Get 請求
命令格式: curl requesturl
例如: curl https://kunpeng.csdn.net/ad/template/161?positionId=427
2、Post 請求
命令格式: curl -X POST requesturl
例如: curl -X POST https://msg.csdn.net/v1/web/message/view/unread
二、指定ip發送請求
1、http命令格式:
curl -H 'Host:requestHost' http://ip:port/requestPath
或 curl -x ip:port http://requestHost/requestPath
例如:
curl -H 'Host:kunpeng.csdn.net' http://101.201.173.208:80/ad/template/161?positionId=427
curl -x '101.201.173.208:80' http://kunpeng.csdn.net/ad/template/161?positionId=427
2、https命令格式:
curl -H 'Host:requestHost' https://ip/requestPath
或 curl ip https://requestHost/requestPath -k
例如:
curl -H 'Host:kunpeng.csdn.net' https://101.201.173.208/ad/template/161?positionId=427 -k
curl '101.201.173.208' https://kunpeng.csdn.net/ad/template/161?positionId=427 -k
三、帶參數的POST請求
命令格式:
1、head請求參數用 -H表示(一個橫桿)
2、如果命令需要換行,在換行處加 反斜杠
3、body請求參數用 --data表示(兩個橫桿);請求內容有引號時,加反斜杠\
例如:
❿ 如何用Curl 來post xml 數據
經過一番查找,終於找到了curl使用post的命令:
echo '<?xml version …>'|curl -X POST -H 'Content-type:text/xml' -d @- http://10.206.30.32:8081/loginregistration/register
其中圓擾橋<?xml version …>就是李乎要post的xml 文件,8081是私有埠。
例子:
Request:
echo '<?xml version="1.0" encoding="utf-8" ?><橘猛user>......</user>'|curl -X POST -H 'Content-type:text/xml' -d @- http://10.206.30.32:8081/loginregistration/register
Response:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user>......</user>
做相關判斷,就可以知道業務是否正常