參考
https://zhuanlan.zhihu.com/p/140372568
https://zhuanlan.zhihu.com/p/140372568
介紹
這兩條請求語句使用了不同的參數傳遞方式,有以下區別:1. `requests.post(url='http://xx.8.84.xx:8000/inference', json=data)`這個語句使用了 `json` 參數,它會自動將提供的 Python 對象(在這里是 `data`)轉換為 JSON 格式,并把它作為請求的主體內容發送給服務器。這通常用于向服務器發送 JSON 數據。2. `requests.post(url='http://xx.8.84xx:8000/inference', data=data)`這個語句使用了 `data` 參數,它會將提供的字符串(在這里是 `data`)直接作為請求的主體內容發送給服務器。這通常用于向服務器發送表單數據。所以,兩者的區別在于參數的類型和處理方式。如果你的服務器端期望 JSON 格式的數據,你應該使用第一種方式;如果服務器端期望表單數據,則可以使用第二種方式。1. 使用data作為主體參數當request的請求頭的數據格式為Content-Type=application/json,表明需要傳入的data參數的格式應為json。json是一種文本序列化格式,可以使用json.dumps()方法將字典轉成json格式:data = {"layer_tag":"im_index","is_not_need_expt_ver":False,"is_not_need_submit":False,"user_list":[{"client_type":0,"client_id":"123456"}]}import json
data_json=json.dumps(data)
print(type(data_json))
data_json可以看到json輸出的格式是‘str',當data為str時,如果不指定content-type,默認為text/plain。2. 使用json作為主體參數此時可直接使用字典格式:import requests
url = 'http://這里填入地址'
headers={'Content-Type':"application/json"}# 提交請求
# 方法一:使用data參數
r = requests.post(url, headers=headers, data = data_json)# 方法二:使用json參數
r = requests.post(url, headers=headers, json = data)
不管json是str還是dict,如果不指定headers中的content-type,默認為application/json。
表單
瀏覽器原生的 form 表單是指在 HTML 中使用 標簽創建的表單。這種表單是瀏覽器內置的表單功能,它提供了一種方便的方式來收集用戶輸入數據并將其提交到服務器進行處理。
使用原生的 form 表單,你可以定義各種表單字段,如文本輸入框、復選框、單選按鈕、下拉列表等。通過設置表單的屬性,你可以指定表單提交的目標 URL、請求方法(GET 或 POST)以及其他處理行為。
當用戶在瀏覽器中填寫表單并提交時,瀏覽器會自動將表單字段的值打包成一個 HTTP 請求,并將其發送到指定的服務器端 URL。服務器端可以通過相應的技術(如后端編程語言)從請求中提取表單數據并進行相應的處理。
使用原生的 form 表單可以使表單的創建和處理更加簡單和直觀,同時也可以獲得瀏覽器內建的驗證和用戶體驗功能(如自動填充、表單校驗等)。