gpt4 book ai didi

Python 请求 : having a space in header for posting

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:11 24 4
gpt4 key购买 nike

我正在尝试使用以下脚本发布到服务器:

import requests                                                                                                                                                                                                 
data = {
'query': 'GetProcess',
'getFrom': '2018-12-06 10:10:10.000',
}
response = requests.post('http://localhost/monitor', data=data)

我找不到确切位置,但是 getFrom 元素中的空格字符被替换为 +:'2018-12-06+10: 10:10.000'

这与 SQL 在我们的服务器上期望的语法不匹配,因此查询失败。

我在这里 ( https://stackoverflow.com/a/12528097 ) 读到设置内容类型可能会有帮助。我尝试了 text/htmltext/plainapplication/json,似乎没有任何改变。

有趣的是,以下(等效的?)bash 命令成功了:curl -d 'query=GetProcess&getFrom=2018-12-06 10:10:10.000' localhost/monitor

我正在寻找一种方法让我的服务器在 header 中接收 "getFrom": "2018-12-06 10:10:10.000"

最佳答案

我找到了一种方法来完成这项工作:我遇到的问题是由于使用了 requests 中的 urlencode 函数。在 requests 文档中,展示了如何使用 PreparedRequests 绕过此默认行为:http://docs.python-requests.org/en/master/user/advanced/#prepared-requests

本质上,不是使用 requests.post() 包装器,而是显式调用函数。这样,您将能够准确控制发送的内容。就我而言,解决方案是:

import requests
data = {
'query': 'GetProcess',
'getFrom': '2018-12-06 10:10:10.000'
}
s = requests.Session()
req = requests.Request('POST', 'http://'+ipAddress+'/monitor', data=data)
prepped = s.prepare_request(req)
prepped.body = prepped.body.replace("+", " ")
response = s.send(prepped)

关于Python 请求 : having a space in header for posting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53707202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com