在GET请求中发送数据Python

9ceoxa92  于 2023-07-01  发布在  Python
关注(0)|答案(5)|浏览(149)

我知道使用GET不是一个明智的解决方案,但是我无法控制这个服务器的工作方式,并且对请求的经验很少。
我希望通过GET请求添加一个字典,并被告知服务器已设置为接受此,但我不知道这是如何工作的。我试过用

import requests
r = request.get('www.url.com', data = 'foo:bar')

但这让网页保持不变,有什么想法吗?

yr9zkbsy

yr9zkbsy1#

要在get请求中使用request-body,必须重写post方法。例如

request_header={
            'X-HTTP-Method-Override': 'GET' 
        }
    response = requests.post(request_uri, request_body, headers=request_header)
tzcvj98z

tzcvj98z2#

使用这样的请求传递请求的数据字段中的数据

requests.get(url, headers=head, data=json.dumps({"user_id": 436186}))
qojgxg4l

qojgxg4l3#

对于人跌跌撞撞的野兔后,所有这些年来,尝试这个也许

import requests
r = request.get("www.url.com", params={"foo": "bar"})
b5buobof

b5buobof4#

您似乎对get请求使用了错误的参数。requests.get()的文档在这里。

  • 应该使用params而不是data作为参数。
  • URL中缺少http

以下内容应该有效:

import requests

r = request.get('http://www.url.com', params = {'foo': 'bar'})

print(r.content)

实际的请求可以通过r.request.url进行检查,应该是这样的:
http://www.url.com?foo=bar

vom3gejh

vom3gejh5#

如果你不确定服务器是如何工作的,你应该发送一个POST请求,如下所示:

import requests

data = {'name', 'value'}

requests.post('http://www.example.com', data=data)

如果您确实需要使用GET请求发送数据,请确保数据位于字典中,并使用 params 关键字传递信息。
您可能会发现requests documentation

相关问题