BUG解決:postman可以請求成功,但Python requests請求報403

目錄

問題背景

問題定位

問題解決


問題背景

使用Python的requests庫對接物聯數據的接口之前一直正常運行,昨天突然請求不通了,通過進一步驗證發現凡是使用代碼調用接口就不通,而使用postman就能調通,請求參數啥的都沒變。

接口返回的結果如下:

<!DOCTYPE html>\n<html>\n<head>\n<meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1.0">\n<title>403</title>\n<style type="text/css">\nbody {\n ? ?background-color: #f3f3f4;\n ? ?color: #676a6c;\n ? ?height: 100%;\n ? ?font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";\n}\n\n.middle-box {\n ?max-width: 600px;\n ?z-index: 100;\n ?margin: 0 auto;\n ?padding-top: 40px;\n ?text-align: center;\n}\n\n.middle-box h1 {\n ?font-size: 170px;\n ?font-weight: 100;\n ?margin-top: 20px;\n ?margin-bottom: 10px;\n}\n\n.btn {\n ?border-radius: 3px;\n ?font-size: inherit;\n ?display: inline-block;\n ?width: 100px;\n ?height: 30px;\n ?line-height: 30px;\n ?background-color: #1ab394;\n ?border-color: #1ab394;\n ?color: #fff;\n ?cursor: pointer;\n ?font-size: 14px;\n}\n\n.btn:hover {\n ?background-color: #1c8570;\n}\n\n.btn:active {\n ?background-image: none;\n ?outline: 0;\n ?-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n ?box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.buttons {\n ? ?margin-top: 30px;\n}\n\n</style>\n</head>\n<body>\n ? ?<div class="middle-box">\n ? ? ? ?<h1>403</h1>\n ? ? ? ?<h3 class="font-bold">Forbidden</h3>\n ? ? ? ?<div class="error-desc">?\x9b\xa0?\x9d\x83é\x99\x90é\x97?é¢\x98?\x88\x96è?\x8c??oé\x9d\x9e?3\x95??\x8c?\x82¨?\x9a\x84è??é\x97?è¢??\x8b\x92??\x9d?\x80\x82</div>\n ? ? ? ?<div class="buttons"><a class="btn btn-primary" οnclick="javascript:history.back()">è?\x94?\x9b\x9e</a></div>\n ? ?</div>\n</body>\n</html>

問題定位

初步斷定,在使用requests調用接口時少了點什么,而postman則有這個東西。

后來發現,postman在請求的時候自動加上了請求頭User-Agent,而代碼中headers中沒有配置這一項。

User-Agent請求頭是HTTP請求中的一個頭部字段,它包含了發起請求的應用程序的信息。這個字段通常用于告知服務器,發起請求的是哪種瀏覽器、設備、操作系統或者應用程序。服務器可以根據這個信息來決定是否允許該請求,或者根據不同的客戶端類型返回不同的內容。

User-Agent字符串通常包含了以下信息:

  • 瀏覽器名稱和版本
  • 操作系統名稱和版本
  • 設備類型(如智能手機、平板電腦、桌面電腦)
  • CPU類型
  • 默認語言

問題解決

在代碼中加上自定義User-Agent請求頭即可:

import requestsurl = "……"
headers = {'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': "PostmanRuntime/7.39.0"}
req = requests.get(url=url, headers=headers)

同理,也可以將User-Agent請求頭設置為Chrome瀏覽器:

headers = { 'Content-Type': 'application/x-www-form-urlencoded', 
'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}

該請求頭告訴服務器,請求是由一個運行在Windows 10上的64位版本的Chrome 58瀏覽器發起的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/45197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/45197.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/45197.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SSL 證書錯誤:如何修復以及錯誤發生的原因

SSL證書可以提升網站的可信度。然而&#xff0c;如果您的SSL證書出現錯誤&#xff0c;您可能會得到一個“不安全”的標簽&#xff0c;這可能會導致訪問者失去對您網站的信任并轉向競爭對手。 本文將介紹SSL證書錯誤的原因及其對用戶的潛在影響。隨后&#xff0c;我們將提供詳細…

MybatisPlus 核心功能

MybatisPlus 核心功能 文章目錄 MybatisPlus 核心功能1. 條件構造器1.1 QueryWrapper1.2 LambdaQueryWrapper&#xff08;推薦&#xff09;1.3 UpdateWrapper1.4 LambdaUpdateWrapper 2. 自定義SQL3. Service接口 1. 條件構造器 當涉及到查詢或修改語句時&#xff0c;MybatisP…

界面組件Kendo UI for React 2024 Q2亮點 - 生成式AI集成、設計系統增強

隨著最新的2024年第二季度發布&#xff0c;Kendo UI for React為應用程序開發設定了標準&#xff0c;包括生成式AI集成、增強的設計系統功能和可訪問的數據可視化。新的2024年第二季度版本為應用程序界面提供了人工智能(AI)提示&#xff0c;從設計到代碼的生產力增強、可訪問性…

Java畢業設計 基于SSM vue圖書管理系統小程序 微信小程序

Java畢業設計 基于SSM vue圖書管理系統小程序 微信小程序 SSM 圖書管理系統小程序 功能介紹 用戶 登錄 注冊 首頁 圖片輪播 圖書信息推薦 圖書詳情 贊 踩 評論 收藏 系統公告 公告詳情 用戶信息修改 我的待還 圖書歸還 催還提醒 我的收藏管理 意見反饋 管理員 登錄 個人中心…

絕地求生PUBG奇幻大亂斗怎么玩 奇幻大亂斗什么時候回歸

《絕地求生》(PUBG) 是由韓國開發的一款戰術競技型射擊類沙盒游戲&#xff0c;游戲中我們需要和隊友組隊乘坐飛機跳傘到達一座空島&#xff0c;之后我們需要搜索一切我們可以用到的物資&#xff0c;之后我們于敵人進行對戰&#xff0c;期間不斷躲避毒圈的追擊&#xff0c;最后當…

python(餐廳點餐系統)

全部代碼&#xff1a; meau_lis[[1,"牛排",50],[2,"羊排",80],[3,"大盤雞",50],[4,"火鍋雞",68],[5,"豬大骨",35],[6,"米飯",2],[7,"壽司",5],[8,"大餅",6],[9,"小米粥",1],[10,&…

深入理解MySQL中的EXPLAIN及type列

在MySQL中&#xff0c;EXPLAIN是一個強大的工具&#xff0c;它可以幫助我們理解SQL查詢的執行計劃。通過使用EXPLAIN&#xff0c;我們可以獲取到查詢的詳細信息&#xff0c;包括如何執行查詢&#xff0c;以及查詢的各個部分如何連接在一起。在本篇博客中&#xff0c;我們將重點…

Redis+Caffeine 實現兩級緩存實戰

RedisCaffeine 實現兩級緩存 背景 ? 事情的開始是這樣的&#xff0c;前段時間接了個需求&#xff0c;給公司的商城官網提供一個查詢預計送達時間的接口。接口很簡單&#xff0c;根據請求傳的城市倉庫發貨時間查詢快遞的預計送達時間。因為商城下單就會調用這個接口&#xff…

防火墻安全策略及用戶認證實驗

目錄 一、實驗拓撲 二、實驗要求 三、實驗思路 四、實驗配置 1、配置vlan 2、配置路由器、防火墻IP地址&#xff0c;劃分區域 3、配置安全策略 ?策略一&#xff1a; 策略二&#xff1a; 策略三&#xff1a; 4、配置用戶認證 策略一&#xff1a; 策略二&#xff1a…

視覺SLAM與定位之一前端特征點及匹配

視覺SLAM中的特征點及匹配 參考文章或鏈接特征點性能的評估傳統特征點和描述子&#xff08;僅特征點或者特征點描述子&#xff09;傳統描述子 基于深度學習的特征點基于深度學習的描述子基于深度學習的特征點描述子特征匹配 參考文章或鏈接 Image Matching from Handcrafted t…

WebGIS基礎原理

該部分內容與部分插圖、學習框架的主要參考的網站與博主如下&#xff08;也趁機分享給大家&#xff09;&#xff1a; OSGeo開源WebGIS在線教程&#xff1a;http://webgis.cn/ OSGeo《地理信息系統原理》&#xff1a;https://www.osgeo.cn/gis-tutorial/index.html OSGeo《Pyth…

DSC主備歸檔報錯

先看一個報錯&#xff1a; 2024-07-10 22:12:21.725 [ERROR] database P0000003511 T0000000000000003696 rafil_list_overlap_consecutive_check failed, rfil(DMDATA/data/DSC02/arch/ARCHIVE_LOCAL1_0x57843343_EP1_2024-07-10_20-44-40.log)->next_seq(2901) > nex…

mysql 8.0.37 客戶端在centos7安裝順序

8.0.37安裝客戶端順序為 yum localinstall mysql-community-libs-compat-8.0.37-1.el7.x86_64.rpm #第二步要加 --nodeps --force 參數 rpm -ivh mysql-community-libs-8.0.37-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-client-plugins-8.0.37-1.el7.x8…

如何用CSS3畫一個三角形?

要用 CSS3 畫一個三角形&#xff0c;可以利用元素的邊框和透明邊框的特性來實現。以下是一個簡單的示例代碼&#xff1a; .triangle {width: 0;height: 0;border-left: 50px solid transparent; /* 左邊框為透明&#xff0c;控制三角形的左斜邊 */border-right: 50px solid tr…

部署Harbor倉庫

本章內容&#xff1a; 安裝docker-ce部署harbor倉庫上傳和拉取 1.安裝docker 1&#xff09;拉取源碼 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 2&#xff09;安裝docker-ce yum -y install docker-ce 3&#…

【TS】Typescript 的類

TypeScript 是 JavaScript 的一個超集&#xff0c;它添加了可選的靜態類型和基于類的面向對象編程。在 TypeScript 中&#xff0c;類是一種模板&#xff0c;用于創建對象。通過類&#xff0c;你可以封裝對象的屬性&#xff08;數據&#xff09;和方法&#xff08;函數&#xff…

C++入門到進階(圖文詳解,持續更新中)

C入門到進階&#xff08;圖文詳解&#xff0c;持續更新中&#xff09; 目錄 C入門到進階&#xff08;圖文詳解&#xff0c;持續更新中&#xff09; 數據 數據類型 基本數據類型/內置數據類型 C常用運算符 賦值運算符 關系運算符 邏輯運算符 雜項運算符 數據的本地化…

第二課:使用域名dns ping通www.baidu.com

需要一臺dns服務器&#xff0c;實現域名解析&#xff0c;把對應的網址變為Ip地址。 首先按照之前博客的配置&#xff0c;自動分配給PC1和PC2的IP地址等相關配置。 然后增加一臺server交換機連接到交換機上&#xff0c;配置好ip地址&#xff0c;192.168.1.100。在dnsServer中。…

7.11日學習打卡----初學Redis(六)

7.11日學習打卡 目錄&#xff1a; 7.11日學習打卡一. redis事務事務的概念與ACID特性Redis事務三大特性Redis事務執行的三個階段Redis事務基本操作 二. redis集群主從復制主從復制環境搭建主從復制原理剖析 哨兵監控哨兵監控環境搭建哨兵工作原理剖析 故障轉移Cluster模式Clust…

c++初階知識——類和對象(1)

目錄 1.類和對象 1.1 類的定義 1.2 訪問限定符 1.3 類域 2.實例化 2.1 實例化概念 2.2 對象大小 內存對齊規則 3.this指針 1.類和對象 1.1 類的定義 &#xff08;1&#xff09;class為定義類的關鍵字&#xff0c;Stack為類的名字&#xff0c;{}中為類的主體&#xf…