<p>您的URL上没有架构(http/https),这也是一个不完整的URL:</p>
<pre><code>import requests
api_key = "myapiKEY123"
client_id = 'xxx123'
url = f'https://api.myapi.io/v2/apps/mine/{client_id}/data/ticket/search'
headers = {
'x-api-key': api_key,
'Accept': 'application/json',
'Content-type': 'application/json',
}
data = {
'startDate': '2021-03-01',
'endDate': '2021-04-12',
}
response = requests.get(url, data=data, headers=headers, timeout=10)
response.raise_for_status()
</code></pre>
<p>然后将响应打印为JSON(如果它们使用JSON进行响应,这是可能的),如<code>response.json()</code>或文本<code>response.text</code>。<code>response.raise_for_status()</code>将检查状态代码是否指示故障(例如<a href="https://docs.python-requests.org/en/master/_modules/requests/models/#Response.raise_for_status" rel="nofollow noreferrer">response code was a 400-599</a>),并引发状态代码和错误的异常</p>
<p>您也没有按照curl建议的格式传递API键,我在上面已经修正了这种格式。我还添加了一个超时,因为请注意,请求库在默认情况下没有超时,因此如果服务器行为不当,连接将永远阻塞,这是不好的</p>
<p>我还怀疑您是否应该将开始和结束日期作为查询参数传递,而不是作为请求主体中的数据传递,因此我也进行了更新。使用<code>params</code>将导致如下请求:</p>
<pre><code>https://api.myapi.io/v2/apps/mine/{client_ID}/data/ticket/search?startDate=2021-03-01&endDate=2021-04-12
</code></pre>
<p>当curl(以及我上面的示例)正在做的是在POST请求主体中以JSON的形式传递这些值时</p>
<p><code>requests.get()</code>将返回一个<code>requests.Response</code>对象,因此将它赋给名为<code>requestObject</code>的变量也有点荒谬</p>
<p>查看以下文档:</p>
<ul>
<li><a href="https://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests" rel="nofollow noreferrer">Post Requests</a></li>
<li><a href="https://docs.python-requests.org/en/master/user/quickstart/#passing-parameters-in-urls" rel="nofollow noreferrer">Passing parameters in URLS</a></li>
<li><a href="https://docs.python-requests.org/en/master/user/quickstart/#custom-headers" rel="nofollow noreferrer">Custom Headers</a></li>
<li><a href="https://docs.python-requests.org/en/master/user/quickstart/#timeouts" rel="nofollow noreferrer">Timeouts</a></li>
<li><a href="https://docs.python-requests.org/en/master/user/quickstart/#errors-and-exceptions" rel="nofollow noreferrer">Errors and Exceptions</a></li>
</ul>
<p>这在代码中不是函数问题,但是<a href="https://www.python.org/dev/peps/pep-0008/#function-and-variable-names" rel="nofollow noreferrer">by convention</a>,函数和变量名在Python中应该是小写的,并且使用下划线来分隔术语,而不是大小写。例如,response_对象而不是responseObject,api_键而不是api_键,client_id而不是client_id。同样,这不会使代码无法工作,这只是惯例。你可以忽略它,但我想至少指出一点</p>