Я пытаюсь использовать встроенный HTTP-клиент. Я установил свои переменные среды на
http-client.private.env. json:
{
"dev": {
"username": "myuser",
"password": "mypass"
}
}
My rest-api.http запрос:
###
POST http://localhost:5111/login
Content-Type: application/json
{
"email": {{username}},
"password": {{password}}
}
Я запускаю его в среде разработки, но результат следующий:
POST http://localhost:5111/login
HTTP/1.1 400
content-type: text/html
content-length: 118
date: Sun, 12 Jul 2020 18:01:24 GMT
server: hypercorn-h11
<!doctype html>
<title>400 Bad Request</title>
<h1>Bad Request</h1>
Bad request syntax or unsupported method
Response code: 400; Time: 19ms; Content length: 118 bytes
Если я заставляю сервер печатать запрос, похоже, что тело отсутствует :
{'_files': None,
'_form': None,
'_send_push_promise': functools.partial(<bound method ASGIHTTPConnection._send_push_promise of <quart.asgi.ASGIHTTPConnection object at 0x7fb5ea407eb0>>, <bound method HTTPStream.app_send of <hypercorn.protocol.http_stream.HTTPStream object at 0x7fb5ea420610>>),
'args': ImmutableMultiDict([]),
'body': <quart.wrappers.request.Body object at 0x7fb5ea420520>,
'body_timeout': 60,
'headers': Headers([('Remote-Addr', '127.0.0.1'), ('Content-Type', 'application/json'), ('Content-Length', '43'), ('Host', 'localhost:5111'), ('Connection', 'Keep-Alive'), ('User-Agent', 'Apache-HttpClient/4.5.12 (Java/11.0.7)'), ('Cookie', 'QUART_AUTH=MQ.RDryRo0feBqlOBqjRPyiiUfwxlY'), ('Accept-Encoding', 'gzip,deflate')]),
'http_version': '1.1',
'method': 'POST',
'path': '/do_login',
'query_string': b'',
'root_path': '',
'routing_exception': None,
'scheme': 'http',
'scope': {'asgi': {'spec_version': '2.1', 'version': '3.0'},
'client': ('127.0.0.1', 44320),
'headers': [(b'content-type', b'application/json'),
(b'content-length', b'43'),
(b'host', b'localhost:5111'),
(b'connection', b'Keep-Alive'),
(b'user-agent',
b'Apache-HttpClient/4.5.12 (Java/11.0.7)'),
(b'cookie',
b'QUART_AUTH=MQ.RDryRo0feBqlOBqjRPyiiUfwxlY'),
(b'accept-encoding', b'gzip,deflate')],
'http_version': '1.1',
'method': 'POST',
'path': '/do_login',
'query_string': b'',
'raw_path': b'/do_login',
'root_path': '',
'scheme': 'http',
'server': ('127.0.0.1', 5111),
'type': 'http'},
'url_rule': <QuartRule '/do_login' (OPTIONS, POST) -> do_login>,
'view_args': {}}
[2020-07-12 14:17:30,355] 127.0.0.1:44320 POST /do_login 1.1 400 118 3759
Если я вместо этого использую строковые литералы, все работает нормально.
Как я могу исправить или это ошибка?
PyCharm 2020.1.2