我想对来自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获取state
和code
值会更容易,但是我不能使用它,因为我认为内容类型不允许这样做。
答案 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()