如何使用Request正确发送post请求

时间:2021-04-23 13:22:17

标签: python post request

我需要使用请求模块发送以下 POST 请求,我从 Burpsuit 收到以下请求,这是我通过拦截自己的请求并尝试自动化而获得的

POST /scripts/shortenUrl.php HTTP/1.1
Host: cutt.ly
Connection: close
Content-Length: 237
sec-ch-ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryXZk9MsSvsF3JaaKn
Accept: */*
Origin: https://cutt.ly
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://cutt.ly/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: urls=%5B%5B%222021-04-19%22%2C%22Gmail%22%2C%22http%3A%5C%2F%5C%2Fgmail.com%22%2C%22https%3A%5C%2F%5C%2Fcutt.ly%5C%2FFvTlMPI%22%5D%2C%5B%222021-04-19%22%2C%22Zaktualizuj%20swoj%5Cu0105%20przegl%5Cu0105dark%5Cu0119%20%7C%20Facebook%22%2C%22http%3A%5C%2F%5C%2Fwww.facebook.com%22%2C%22https%3A%5C%2F%5C%2Fcutt.ly%5C%2FqvTturR%22%5D%5D; __cfduid=dab381c8531b29b6a21779a3d8fc1c37b1618831070; PHPSESSID=isje9ckfgbi3mardervtpldlr7; _ga=GA1.2.1920648684.1618831073; _gid=GA1.2.1780730818.1618831073; cookies_accepted=T; _gat_gtag_UA_112763434_1=1

------WebKitFormBoundaryXZk9MsSvsF3JaaKn
Content-Disposition: form-data; name="url"

gmail.com
------WebKitFormBoundaryXZk9MsSvsF3JaaKn
Content-Disposition: form-data; name="domain"

0
------WebKitFormBoundaryXZk9MsSvsF3JaaKn--

我尝试了以下方法,发布请求已完成,但网站返回错误消息,因为发布数据未正确发送,并且它看起来不像发布请求正文中的 json 以轻松发送它,而是看起来像纯文本.. 不知道如何使用请求发送纯文本帖子数据

import requests
post_data="gmail.com"
headers_data={
    "Host": "cutt.ly",
    "Connection": "close",
    "Content-Length": 237,
    "sec-ch-ua": '"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',
    "sec-ch-ua-mobile": '?0',
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36",
    "Content-Type": "multipart/form-data; boundary=----WebKitFormBoundaryXZk9MsSvsF3JaaKn",
    "Accept": "*/*",
    "Origin": "https://cutt.ly",
    "Sec-Fetch-Site": "same-origin",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Dest": "empty",
    "Referer: https":"//cutt.ly/",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "en-US,en;q=0.9",
    "Cookie": 'urls=%5B%5B%222021-04-19%22%2C%22Gmail%22%2C%22http%3A%5C%2F%5C%2Fgmail.com%22%2C%22https%3A%5C%2F%5C%2Fcutt.ly%5C%2FFvTlMPI%22%5D%2C%5B%222021-04-19%22%2C%22Zaktualizuj%20swoj%5Cu0105%20przegl%5Cu0105dark%5Cu0119%20%7C%20Facebook%22%2C%22http%3A%5C%2F%5C%2Fwww.facebook.com%22%2C%22https%3A%5C%2F%5C%2Fcutt.ly%5C%2FqvTturR%22%5D%5D; __cfduid=dab381c8531b29b6a21779a3d8fc1c37b1618831070; PHPSESSID=isje9ckfgbi3mardervtpldlr7; _ga=GA1.2.1920648684.1618831073; _gid=GA1.2.1780730818.1618831073; cookies_accepted=T; _gat_gtag_UA_112763434_1=1'
}
x = requests.post('https://cutt.ly/scripts/shortenUrl.php',data=post_data,headers=headers_data)
print(x.text)

1 个答案:

答案 0 :(得分:0)

POST body(data) 必须是字典结构:

data = {key: value}

key -> 站点表单中的字段名称

值 -> 字段值

在你的情况下:

data = {'email':'gmail.com'}