1. 程式人生 > >curl命令介紹(結合restful web介面)

curl命令介紹(結合restful web介面)

 Representational State Transfer,簡稱REST 是一種全新的軟體架構風格、設計風格(特別在http web服務領域)。

curl是利用URL語法在命令列方式下工作的開原始檔傳輸工具。它被廣泛應用在Unix、多種Linux發行版中,windows中需要另行安裝。

curl基本語法
curl [option] [url]

可選的option有很多,可通過 curl --help 檢視,本篇我們重點介紹下幾個常用的選項。 
-X    或者 --request    指定請求方式,如GET 、POST 、PUT 、DELETE 、HEAD 等七種方式
-i   或者  --include    顯示伺服器response 響應頭部資訊
-v  或者  --verbose    顯示詳細(冗長)資訊
-H  或者  --header  指定http 請求頭 ,如  -H  "Content-Type:application/json" 
-d  或者  --data  指定請求體body引數 , 如有多個引數可以用&隔開或者使用多個-d 選項。 如  -d "a=abc&b=110&c=true" (指定三個引數)或  -d a=abc -d b=110 -d c=true 亦可。

-F  或者  --form  指定multipart Form 請求體,如檔案域引數,或者普通表單域引數。
-u 或者  --user  指定使用者名稱:密碼 
-C  或者  --continue-at  offset  用於斷點續傳。
-c   或者 --cookie-jar   請求返回回寫cookie到指定檔案中
-D  或者  --dump-header  請求返回回寫response header資訊到指定檔案中
-b  或者  --cookie  請求時攜帶上cookie,指定本地cookie所在檔案 
-x  或者  --proxy   指定 http代理伺服器ip:port 
-O  請求Url 並儲存到本地

-o  請求Url並儲存到指定檔案

1、直接請求
  curl    http://www.tingcream.com    #預設  使用get 請求方式,content-type為form-unlencoded  
  curl   -i    http://www.tingcream.com   # -i 顯示response head資訊

2 、下載url資源(檔案、圖片)到本地
 curl -O   http://www.tingcream.com/imgSev/tcblog/image/20180320/20180320235916.522_127.png   #下載圖片到本地,圖片名稱為伺服器預設確定的名稱
  curl  -o 127.png http://www.tingcream.com/imgSev/tcblog/image/20180320/20180320235916.522_127.png  #下載圖片到本地並指定檔名稱

3 、請求時指定請求方式

   curl    www.tingcream.com  -X POST   或者 -X post   ,-X PUT 或者 -X put    # 使用post、put方式請求服務

4 、使用查詢字串傳參(get)

   curl  http://xxx.com?username=zhangsan&pwd=123  
5 、使用post body傳引數
   curl  -v http://xxxx.com  -X POST -d username=zhangsan -d password=123456  或者 
   curl -v  http://xxxx.com  -X POST -d  'username=zhangsan&password=123456'  
6 、使用multipart Form 傳參(檔案上傳)
   curl   http://xxx.com   -X POST  -F "
[email protected]
/usr/local/aaa.txt" (檔案引數)  -F "username=zhangsan" (普通文字引數)
7、cookie的回寫與使用
    curl -c  ~/cookie.txt   http://xxx.com   #請求回寫cookie到本地檔案
    curl -b  ~/cookie.txt  http://xxx.com   #再次請求,攜帶上cookie (sesisonId)
8、使用http 代理伺服器訪問url

   curl   -x  proxyIP:proxyPort  http://xxx.com  

9 、使用-C  進行斷點續傳 


11 、restFull API 使用Post JSON

     curl  http://xxx.com   -X POST -H "Content-Type:application/json"  -d  '{"a":"abc","b":101}' 

    對應java服務端(spring4.x  + spingMVC)

@RequestMapping("/curl_test3")
public String curl_test3(HttpServletRequest request,HttpServletResponse response,
        //restFull  json 請求引數
        @RequestBody JsonParam jsonParam) throws Exception{
    System.out.println("引數a:"+jsonParam.getA());
    System.out.println("引數b:"+jsonParam.getB());
    System.out.println("引數c:"+jsonParam.getC());   
    response.getWriter().write(JSON.toJSONString(AjaxUtil.messageMap(200, "請求成功")));
    return null;
}

pojo 

import java.io.Serializable;
 
public class JsonParam implements Serializable{
     
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private String a;
    private Integer b;
    private Boolean c ;
    public String getA() {
        return a;
    }
    public Integer getB() {
        return b;
    }
    public Boolean getC() {
        return c;
    }
    public void setA(String a) {
        this.a = a;
    }
    public void setB(Integer b) {
        this.b = b;
    }
    public void setC(Boolean c) {
        this.c = c;
    }
 
}

pom.xml 

<dependency> 
         <groupid>com.fasterxml.jackson.core</groupid> 
         <artifactid>jackson-core</artifactid> 
         <version>2.7.9</version> 
     </dependency> 
     <dependency> 
         <groupid>com.fasterxml.jackson.core</groupid> 
         <artifactid>jackson-databind</artifactid> 
          
         <version>2.7.9</version> 
     </dependency> 
     <dependency> 
         <groupid>com.fasterxml.jackson.core</groupid> 
         <artifactid>jackson-annotations</artifactid> 
          <version>2.7.9</version> 
     </dependency>

ok ~~

相關推薦

curl命令介紹結合restful web介面

 Representational State Transfer,簡稱REST 是一種全新的軟體架構風格、設計風格(特別在http web服務領域)。curl是利用URL語法在命令列方式下工作的開原始檔傳輸工具。它被廣泛應用在Unix、多種Linux發行版中,windows中

PHP規範PSR11依賴注入容器介面介紹

本文件描述了依賴注入容器的通用介面。 ContainerInterface設定的目標是標準化框架和庫如何使用容器來獲取物件和引數(在本文件的其餘部分中稱為條目)。 本文件中的關鍵詞“必須”,“必須”,“必需”,“應該”,“不應該”,“應該”,“不應該”,“推薦”,“可以”和“可選”按照RFC

hadop 檢視DataNode的資源使用情況資訊web介面

文章目錄 1.概述 2. 配置 3. 例項 1.概述 2. 配置 3. 例項 自己搭建一個hadoop本地集群后,訪問 http://localhost:8088/ws/v1/cluster/metrics <?x

kafka 常用運維命令介紹

文章目錄 一、producer 相關命令 1. kafka-console-producer 生產訊息 2. 使用 kafka-producer-perf-test 進行producer的基準測試 3. 使用 kaf

kafka 常用運維命令介紹

文章目錄 一、連線zk zkCli 命令 二、topic 相關 列出所有的topic & 獲取命令幫助 建立topic 列出所有topic的詳情 刪除topic

pandas常用功能與函式介紹結合例項,持續更新

import numpy as np import pandas as pd from Cython.Shadow import inline import matplotlib.pyplot as plt #matplotlib inline ###################1 or

Ajax原理介紹結合php示例

    Ajax = Asynchronous JavaScript and XML (非同步的JavaScript和XML),Ajax是一種用於建立快速動態網頁的技術。Ajax最大的優點就是在不重新載入整個頁面的情況下,可以與伺服器交換資料並更新部分網頁內容。

KafKa介紹分布式架構

方式 讀取 功能 lan 應用 單獨 參考 兩個 失去 介紹 Kafka是一個分布式的、可分區的、可復制的消息系統。它提供了普通消息系統的功能,但具有自己獨特的設計。這個獨特的設計是什麽樣的呢? 首先讓我們看幾個基本的消息系統術語: Kafka將消息以topic為單位進

selenium webdriver 右鍵另存為下載文件結合robot and autoIt

warn pat case 調用 印度 crs stat into ttext 最近一直在研究selenium webdriver右鍵菜單,發現selenium webdriver 無法操作瀏覽器右鍵菜單,如圖 如果我想右鍵另存為,根本操作不了。 也有在網上看到we

framework裏的xxxManagerProxy,xxxManager與xxxManagerService概念介紹AIDL通信模型

logs 獲取 封裝 strong system ron bin andro 做的 用於AIDL的模型基本如下 這裏BackupManager的一個例子可以看到下面的關系 1 opt/net/wifi/service/java/com/android/server/wi

Jupyter-NoteBook工具介紹網頁版編輯器

命名 編輯 notebook 分享 安裝完成 cond height 編輯器 con 1.Jupyter-NoteBook位置   在安裝完anaconda後,這個工具已經被安裝完成。    2.打開       3.功能講解    4.其余的功能   可以對文

CentOS 6.9安裝類型選擇Basic Server/Web Server

devel ref http com base linux href linu postgresq Desktop :基本的桌面系統,包括常用的桌面軟件,如文檔查看工具。 Minimal Desktop:基本的桌面系統,包含的軟件更少。 Minimal:基本的系統,不含

springmvc系列一 之配置介紹包含官網doc

不同 oca handle bsp cut targe sevlet 繼承 流程 1.springmvc 官網參考地址:   https://docs.spring.io/spring/docs/current/spring-framework-reference/web.

支持移動端裁剪圖片插件Jcrop結合WebUploader上傳

func image .get ont pan als opacity hang move (此教程包括前端實現圖片裁剪,後端進行獲取裁剪區並保存) 最近有一個需求,微信公眾號上傳圖片,支持自定義裁剪。 以前用過一款裁剪插件cropper,很久沒用了,不知道對移動端操作兼容

建站手冊-網站構建:萬維網聯盟World Wide Web Consortium

white .com .cn targe 簡介 存儲 red ner 主任 ylbtech-建站手冊-網站構建:萬維網聯盟(World Wide Web Consortium) 1.返回頂部 1、 http://www.w3school.com

Linux中touch命令使用創建文件

inf access -c -- modify 連續 技術分享 lin 路徑 touch命令有兩個功能: 1.用於把已存在文件的時間標簽更新為系統當前的時間(默認方式),它們的數據將原封不動地保留下來; 2.用來創建新的空文件。 語法 touch(選項)(參數) 選

簡明條件隨機場CRF介紹附帶純Keras實現

筆者去年曾寫過博文《果殼中的條件隨機場(CRF In A Nutshell)》,以一種比較粗糙的方式介紹了一下條件隨機場(CRF)模型。然而那篇文章顯然有很多不足的地方,比如介紹不夠清晰,也不夠完整,還沒有實現,在這裡我們重提這個模型,將相關內容補充完成。 本文是對CRF基本原理的一個簡明的介紹

CentOS下靜默無圖形化介面安裝Oracle11g

安裝要求(本人的配置):CentOS7虛擬機器,記憶體至少1G,磁碟大小40G往上(最低要求),不然後面空間不足你肯定裝不上,吃了大虧!!!後來本人擴充套件到60G。 以下為步驟,為確保可用,建議安裝時命令手動鍵入: 首先root身份進入系統: vi /etc/hosts A

CAN匯流排基礎——CAN匯流排物理層介紹匯流排電壓詳解

CAN匯流排的物理層定義了連線車內各控制器的相關介質以及介面。由於CAN匯流排的資料傳輸實質是通過總線上的電壓變化傳輸的,所以CAN的匯流排電壓是CAN匯流排技術的核心所在,匯流排電壓在物理層中定義。為了深刻理解CAN匯流排,下面我們詳細介紹匯流排電壓:     

井字棋遊戲C語言簡單思路人人對戰版無圖形化介面

#include<stdio.h> #include<stdlib.h> #include<conio.h> #defineROW 3 #defineLINE 3 intsymbol1, symbol2, step; char a[10]; void