文章目錄
- 問題概述
- Apifox查看實際請求
- 總結
問題概述
開發中有一個需求需要去別的系統中拿數據,配置好相關參數后發起請求時發現響應結果和在Apifox上不同,Apifox上正常顯示數據,而本地調用后返回數據不存在。
這就很奇怪了,想了很多可能,比如入參傳錯了,沒有在請求體中存放json發送請求后(自己還專門寫了一個接口接數據發現沒問題),最后排查到請求頭,將Apifox上的實際請求一一對照,發現是少了Accept: * / * ,問題解決。
Apifox查看實際請求
總結
一般來說,接口只要接口調試工具或者瀏覽器能請求通,那么可以排除是接口提供方的問題。
而請求接口出現的問題大多數是請求頭Header的問題,這類問題的主要解決思路就是調整請求頭中的參數值,大致如下:
Accept:* / *
Host:xxx.xxx.xxx.xxx如果需要請指定服務的域名或者IP地址
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36
Content-Type:application/json;charset=UTF-8或者將charset=UTF-8取掉
Connection:keep-alive
還有一種可能是請求url中存在中文,因為測試工具和瀏覽器在轉發請求的時候按照HTTP協議把參數進行了encode編碼,而本地訪問請求接口時未進行編碼,這時就需要在訪問接口前進行encode編碼。