python请求库的标头中的“内容类型”是什么意思,如果值是text / html; charset = UTF-8?

时间:2018-08-14 14:46:02

标签: python-3.x python-requests

我想对来自python请求库的响应进行一些操作。使用以下功能后;

response = requests.get(f'{AUTHORIZE_URL}?client_id={CLIENT_ID}&response_type=code&state={STATE}&redirect_uri={REDIRECT_URI}')

作为回报,我需要获取类似这样的网址;

http://127.0.0.1:8000/products/auth/?state=2b33fdd45jbevd6nam&code=MGY1MTMyNWY0YjQ0MzEwNmMxMjY2ZjcwMWE2MWY5ZDE5MzJlMjA1YjdkNWExNGRhYjIzOGI5NzQ5OWZkNTA5NA

这样做时,使用JSON以便从URL获取statecode值会更容易,但是我不能使用它,因为我认为内容类型不允许这样做。

1 个答案:

答案 0 :(得分:0)

有关内容类型的说明,请参见此:Content-Type

简而言之,使用 requests.get 获得的响应标题中的“内容类型”告诉您服务器发送了哪种内容,在您的情况下,您将获得响应HTML格式(如.html文档),您可以使用 response.text 阅读该响应,如果“内容类型”为“ application / json”,则可以像JSON一样读取它此 response.json()

我看到您使用了一些本地服务器,您的本地服务器应发送标头“ Content-Type”:“ application / json”,然后您应该能够从这样的响应中读取JSON(您无需发送JSON hmtl或服务器上的文字):

targetURL = 'http://127.0.0.1:8000/products/auth/?state=2b33fdd45jbevd6nam&code=MGY1MTMyNWY0YjQ0MzEwNmMxMjY2ZjcwMWE2MWY5ZDE5MzJlMjA1YjdkNWExNGRhYjIzOGI5NzQ5OWZkNTA5NA'
response.get(targetURL).json()