захватить строки запроса метода POST и превратить в словарь в python? - PullRequest
0 голосов
/ 28 апреля 2020

как мне получить / перехватить строки запроса метода POST и превратить в словарь в python? это содержимое файла request.txt. К вашему сведению, параметр строки запроса может варьироваться в зависимости от файла запроса.


POST /login HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/62.0
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost/login
Cookie: __cfduid=dcd3e07532; XSRF-TOKEN=eyJpdiIyYzc0In0%3D; key_session=eyJpdiI6IFmZCJ9

_token=VCXB1YcU3ti&email=testmail%40gmail.com&password=pass12345

это мой код:

from urllib.parse import urlparse, parse_qs

#read last line
with open("request.txt", "r") as file:
    first_line = file.readline()
    for last_line in file:
        pass

Есть ли лучшие способы получить строку запроса, используя разделение или другими способами? без ссылки на последнюю строку в файле request.txt? большое спасибо

1 Ответ

1 голос
/ 28 апреля 2020
from urllib import parse

with open("data.txt") as f:
    lines = f.readlines()
    goal = lines[lines.index("\n")+1]
    print(dict(parse.parse_qsl(parse.urlsplit(goal).path)))

Выход:

{'_token': 'VCXB1YcU3ti', 'email': 'testmail@gmail.com', 'password': 'pass12345'}     
...