查詢鏈接
https://yma16.inscode.cc/
問題
查詢別人的一下子就返回了,查詢我自己的,1分鐘還不返回,然后就顯示超時(shí)了。。
一開始我還以為是這個(gè)開源項(xiàng)目本身的問題,設(shè)置了請求超時(shí)時(shí)間,我還給它改了超時(shí)時(shí)間,后來發(fā)現(xiàn)不是的。。。
本來是100000的,我給改成1000000了,我對js代碼不熟,也不知道這個(gè)單位是毫秒還是秒。。。
import axios from ‘a(chǎn)xios’;
const url = ‘https://yongma16.xyz/common-api/getCsdnGrade/’
const aliDevUrl=‘https://developer.aliyun.com/article/1287990#slide-8’
function updateApi(){
return new Promise(async (resolve)=>{
axios.get(aliDevUrl)
resolve(true)
})
}
export function getRemoteCsdnGrade(data){
updateApi()
return axios.post(url, data, { timeout: 1000000 })
}
請求超時(shí)原因
這是谷歌瀏覽器自身實(shí)現(xiàn)的超時(shí)限制。當(dāng)瀏覽器發(fā)起一個(gè)POST請求并且在一分鐘內(nèi)沒有收到響應(yīng)時(shí),瀏覽器會(huì)認(rèn)為該請求超時(shí),并終止該請求。這個(gè)超時(shí)限制是為了防止長時(shí)間的請求占用瀏覽器資源,保證瀏覽器的正常運(yùn)行。
解決谷歌瀏覽器超時(shí)問題辦法(失敗了)
我問最強(qiáng)大腦,最強(qiáng)大腦回復(fù):
要增加谷歌瀏覽器的超時(shí)時(shí)間,可以通過以下步驟進(jìn)行設(shè)置:
-
在谷歌瀏覽器的地址欄中輸入
chrome://flags/
,并按下回車鍵。 -
在實(shí)驗(yàn)性功能頁面中,搜索框中輸入 “timeout”,找到 “Enable request timeout” 選項(xiàng)。
-
將該選項(xiàng)的狀態(tài)從 “Default” 改為 “Enabled”。
-
點(diǎn)擊頁面底部的 “Relaunch” 按鈕,重新啟動(dòng)瀏覽器。
(但是我壓根沒找到所謂的"Enable request timeout" 選項(xiàng))
谷歌瀏覽器不支持設(shè)置請求超時(shí)時(shí)間(谷歌瀏覽器到底有沒限制請求超時(shí)?貌似沒有限制?)
參考文章:如何更改Chrome中的默認(rèn)網(wǎng)站連接超時(shí)?
看能否脫離瀏覽器請求,我們查看關(guān)鍵代碼
根據(jù)開源項(xiàng)目https://yma16.inscode.cc/提供的代碼,我們找到下面這段關(guān)鍵代碼:
import axios from 'axios';
const url = 'https://yongma16.xyz/common-api/getCsdnGrade/'
const aliDevUrl='https://developer.aliyun.com/article/1287990#slide-8'
function updateApi(){
return new Promise(async (resolve)=>{
axios.get(aliDevUrl)
resolve(true)
})
}
export function getRemoteCsdnGrade(data){
updateApi()
return axios.post(url, data, { timeout: 100000 })
}
import axios from ‘a(chǎn)xios’;
const url = ‘https://yongma16.xyz/common-api/getCsdnGrade/’
const aliDevUrl=‘https://developer.aliyun.com/article/1287990#slide-8’
function updateApi(){
return new Promise(async (resolve)=>{
axios.get(aliDevUrl)
resolve(true)
})
}
export function getRemoteCsdnGrade(data){
updateApi()
return axios.post(url, data, { timeout: 100000 })
}
這段代碼的作用是通過axios發(fā)送HTTP請求,獲取遠(yuǎn)程CSDN等級的數(shù)據(jù):
首先,通過import
語句引入了axios庫。axios是一個(gè)基于Promise的HTTP客戶端,可以用于瀏覽器和Node.js環(huán)境。
接下來定義了一個(gè)常量url
,它存儲(chǔ)了一個(gè)API的URL地址。
然后定義了一個(gè)常量aliDevUrl
,它存儲(chǔ)了另一個(gè)URL地址。
接著定義了一個(gè)名為updateApi
的函數(shù),它返回一個(gè)Promise對象。在這個(gè)函數(shù)中,使用axios發(fā)送了一個(gè)GET請求到aliDevUrl
,然后通過resolve
方法將Promise狀態(tài)設(shè)置為成功。
最后,導(dǎo)出了一個(gè)名為getRemoteCsdnGrade
的函數(shù)。在這個(gè)函數(shù)中,首先調(diào)用了updateApi
函數(shù),然后使用axios發(fā)送了一個(gè)POST請求到url
,并傳遞了一個(gè)名為data
的參數(shù)。還設(shè)置了一個(gè)超時(shí)時(shí)間為100000毫秒。
總結(jié)起來,這段代碼的作用是通過axios發(fā)送HTTP請求,獲取遠(yuǎn)程CSDN等級的數(shù)據(jù)。
關(guān)于Promise:
Promise是一種用于處理異步操作的對象。它可以將異步操作封裝成一個(gè)Promise對象,通過鏈?zhǔn)秸{(diào)用的方式來處理異步操作的結(jié)果。
Promise的原理是基于狀態(tài)的轉(zhuǎn)換。一個(gè)Promise對象有三種狀態(tài):pending(進(jìn)行中)、fulfilled(已成功)和rejected(已失?。?。當(dāng)一個(gè)Promise對象被創(chuàng)建時(shí),它的初始狀態(tài)是pending。當(dāng)異步操作執(zhí)行成功時(shí),Promise對象的狀態(tài)會(huì)變?yōu)閒ulfilled,并且會(huì)調(diào)用resolve
方法來傳遞異步操作的結(jié)果。當(dāng)異步操作執(zhí)行失敗時(shí),Promise對象的狀態(tài)會(huì)變?yōu)閞ejected,并且會(huì)調(diào)用reject
方法來傳遞錯(cuò)誤信息。
關(guān)于為什么要發(fā)送兩次請求:
為什么要發(fā)兩個(gè)請求的原因可能是為了實(shí)現(xiàn)某種邏輯。在代碼中,首先通過updateApi
函數(shù)發(fā)送了一個(gè)GET請求到aliDevUrl
,這個(gè)請求可能是為了更新一些數(shù)據(jù)或者獲取一些必要的信息。然后在getRemoteCsdnGrade
函數(shù)中,又發(fā)送了一個(gè)POST請求到url
,這個(gè)請求可能是為了獲取遠(yuǎn)程CSDN等級的數(shù)據(jù)。兩個(gè)請求可能是相互關(guān)聯(lián)的,或者是為了滿足不同的需求。具體的邏輯需要根據(jù)實(shí)際情況來確定。
估計(jì)第一個(gè)請求,是作者用來測試服務(wù)器通不通,或者用來刷瀏覽量用的哈哈??
這里的關(guān)鍵就是第二個(gè)接口。
使用postman直接調(diào)用批量查詢接口getCsdnGrade(這個(gè)接口估計(jì)是CSDN內(nèi)部工作人員搞的)
POST https://yongma16.xyz/common-api/getCsdnGrade/
{
"uId": "dexi1113"
}
我們來調(diào)用測試一下,先找一個(gè)博文數(shù)量不太多的哥們:
成功返回了數(shù)據(jù)。
然后再來測試我的:
超時(shí)了,都怪我博文太多了(;′??Д??`) :
修改postman超時(shí)時(shí)間,繼續(xù)調(diào)getCsdnGrade接口(不行,是服務(wù)提供者那邊做了限制)
點(diǎn)擊postman右上方的齒輪按鈕,然后點(diǎn)擊Settings:
我將超時(shí)時(shí)間改成1000000,然后叉掉窗口:
然后繼續(xù)調(diào):
還是超時(shí),那估計(jì)跟我這邊沒關(guān)系,是服務(wù)提供者那邊做了限制:
文章來源:http://www.zghlxwxcb.cn/news/detail-651296.html
已經(jīng)向CSDN客服反饋了
文章來源地址http://www.zghlxwxcb.cn/news/detail-651296.html
到了這里,關(guān)于CSDN博客批量查詢質(zhì)量分https://yma16.inscode.cc/請求超時(shí)問題(設(shè)置postman超時(shí)時(shí)間)(接口提供者設(shè)置了nginx超時(shí)時(shí)間)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!