可能有幾種原因?qū)е逻@種情況。以下是一些常見(jiàn)的問(wèn)題和可能的解決方法:
證書(shū)驗(yàn)證問(wèn)題:
當(dāng)你使用mitmproxy抓包時(shí),它通常會(huì)生成自簽名的SSL證書(shū),以便進(jìn)行中間人攻擊檢查。但在Python中使用requests庫(kù)時(shí),默認(rèn)情況下,它會(huì)驗(yàn)證SSL證書(shū)的有效性。你需要禁用SSL驗(yàn)證,以便使用mitmproxy生成的證書(shū)。
你可以在requests中通過(guò)設(shè)置verify參數(shù)為False來(lái)禁用SSL證書(shū)驗(yàn)證,如下所示:
import requests
url = "https://example.com/api/endpoint"
response = requests.get(url, verify=False)
這只是一個(gè)解決方案,但在實(shí)際應(yīng)用中,禁用SSL驗(yàn)證可能會(huì)引入安全風(fēng)險(xiǎn),因此請(qǐng)慎重使用。另一種方法是將mitmproxy的根證書(shū)添加到Python的信任證書(shū)列表中,以使requests能夠驗(yàn)證mitmproxy生成的證書(shū)。
代理設(shè)置問(wèn)題:
確保你在Python的requests中設(shè)置了正確的代理。mitmproxy通常會(huì)運(yùn)行在本地代理服務(wù)器上(默認(rèn)端口為8080),你需要在requests中指定這個(gè)代理。以下是一個(gè)設(shè)置代理的示例:
import requests
url = "https://example.com/api/endpoint"
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = requests.get(url, proxies=proxies)
請(qǐng)確保將代理配置為與mitmproxy相匹配。
請(qǐng)求頭問(wèn)題:
mitmproxy可以修改請(qǐng)求頭,包括User-Agent等信息。確保你的Python請(qǐng)求與mitmproxy捕獲的請(qǐng)求頭相匹配,否則服務(wù)器可能會(huì)拒絕請(qǐng)求。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-711301.html
以上完美的解決了我的問(wèn)題!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-711301.html
到了這里,關(guān)于解決使用mitmprox抓包可以訪問(wèn)網(wǎng)頁(yè),但是使用python request 調(diào)用該網(wǎng)站接口報(bào)錯(cuò)問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!