天天看點

python requests 庫請求帶有檔案參數的接口

有些接口參數是一個檔案格式,比如fiddler 抓包參數如下顯示

python requests 庫請求帶有檔案參數的接口

這個接口的 form-data fiddler 顯示的和不帶檔案參數的接口有明顯差別,顯示的不是簡單的鍵值對,是以我們也不能隻通過 data給接口傳參,需要再value為<file>的參數通過 files傳參

data = {
        "CSRFName": “CSRFName”,
        "CSRFToken": “CSRFToken”,
        "importType": "XML",
        "hit_criteria": "name",
        "action_on_duplicated_name": "generate_new",
        "useRecursion": "0",
        "bIntoProject": "0",
        "containerID": "4956",
        "MAX_FILE_SIZE": "409600",
        "UploadFile": "上傳檔案"
    }

files = {"uploadedFile": open(file_name, "rb")}
r = session.post(url=url, data=data, files=files)
           

這樣我們通過requests 再次請求接口,通過fiddler 抓包,驗證一下requests的請求是不是和原始的請求一緻。

fiddler 顯示的form data和原始請求一緻,說明我們請求參數是正确的。