GET请求适用于邮递员,但不适用于python请求和curl

时间:2020-07-18 20:49:00

标签: python curl python-requests postman urllib

我试图用python创建一个特定的GET请求到站点: https://sgfm.elcorteingles.es/SGFM/dctm/MEDIA03/202006/24/00117731276964____5__210x210.jpg

但是我没有从浏览器得到任何响应,并且浏览器永远等待着。 然后我尝试创建一个curl请求,并且发生相同的事情(永远保持等待状态)。 毕竟,我尝试创建一个POSTMAN请求,它的工作原理非常完美!而且我不明白为什么它适用于邮递员,但不适用于python和curl,因为所有这些平台都不像浏览器那样。 我使用邮递员方法将邮递员请求转换为python和curl:

#python
import requests

url = "https://sgfm.elcorteingles.es/SGFM/dctm/MEDIA03/202006/24/00117731276964____5__210x210.jpg"

payload = {}
headers= {}

response = requests.request("GET", url, headers=headers, json = payload)

print(response.text.encode('utf8'))

#curl

curl --location --request GET 'https://sgfm.elcorteingles.es/SGFM/dctm/MEDIA03/202006/24/00117731276964____5__210x210.jpg'

,但是他们俩都没有得到任何回应。 有谁知道为什么会这样,并将其转换为python请求?甚至卷曲,我也可以应付。

1 个答案:

答案 0 :(得分:1)

您的标头不会被服务器接受。我尝试了这些,对我有用。

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36', "Upgrade-Insecure-Requests": "1","DNT": "1","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language": "en-US,en;q=0.5","Accept-Encoding": "gzip, deflate"}

此外,您需要将发出的请求更改为requests.requests('GET')不是发出GET请求的正确方法。合适的是requests.get(ur;)

import requests

url = "https://sgfm.elcorteingles.es/SGFM/dctm/MEDIA03/202006/24/00117731276964____5__210x210.jpg"

payload = {}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36', "Upgrade-Insecure-Requests": "1","DNT": "1","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language": "en-US,en;q=0.5","Accept-Encoding": "gzip, deflate"}

response = requests.get(url, headers=headers)

print(response.text.encode('utf8'))