简体   繁体   English

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

[英]How to send post request properly using Request

I need to send below POST request using requests module, I got this below request from Burpsuit which i got from intercepting my own request and trying to automate我需要使用 requests 模块发送下面的 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--

I tried the below method, the post request was done but the website return wrong message because that the post data was not well properly send and it doesnt look like a json in body of post request to send it easily instead it looks like plain text.. no idea how to send plain text post data using request我尝试了以下方法,发布请求已完成,但网站返回错误消息,因为发布数据未正确发送,并且在发布请求正文中看起来不像 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)

POST body(data) must be dict structure: POST body(data) 必须是 dict 结构:

data = {key: value}

key -> field name in site form键 -> 站点表单中的字段名称

value -> field value值 -> 字段值

in your case:在你的情况下:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM