【问题标题】:curl works but not python requests.get()curl 有效,但不是 python requests.get()
【发布时间】:2020-10-30 19:13:03
【问题描述】:

我在 stackoverflow 上发现了一些类似的问题(1,2,3),但都没有解决我的问题。

网址类似于“https://example.com/api.php?foo=bar”。 使用以下命令将得到一个 json 字符串:

curl "https://example.com/api.php?foo=bar"

使用以下代码时返回 502 响应(错误的网关):

import requests
requests.get("https://example.com/api.php?foo=bar")

目前我正在使用以下代码作为解决方法,但我想知道为什么 requests.get() 不起作用。

import subprocess
subprocess.check_output(['curl','-s','https://example.com/api.php?foo=bar'])

【问题讨论】:

    标签: python curl python-requests


    【解决方案1】:

    尝试使用 params 关键字而不是作为 URL 的一部分传递参数 foo 和值 bar

    payload = {"foo": "bar"}
    requests.get("https://www.example.com/api.php", params=payload)
    

    documentation page

    【讨论】:

    • 你的调试器说什么?
    • 什么意思?这也不例外。 requests.get() 返回一个状态=502 @lora 的响应
    • 这不是一个例外,但运行调试器可能会为您提供更多信息。如果没有实际的 URL 或更明确的 502 错误,很难说为什么会发生这种情况。您可以尝试传递用户代理标头。
    猜你喜欢
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多