Python 的 POST请求的出现的问题:
"Content-Type": "multipart/form-data;boundary=----WebKitFormBoundaryTm8YXcJeyKDClbU7",
发送这样类型的数据时,会自动将发送的数据进行分割,但这个时候如果目标限制严格,那么在使用python直接发送Payload的过程中,需要将进行\r\n
的补充。
data = '''------WebKitFormBoundaryTm8YXcJeyKDClbU7\r\nContent-Disposition: form-data; name="method"\r\n\r\ngetupload\r\n------WebKitFormBoundaryTm8YXcJeyKDClbU7\r\nContent-Disposition: form-data; name="uploadID"\r\n\r\n1xxxxxxxxxx;--\r\n------WebKitFormBoundaryTm8YXcJeyKDClbU7--'''
data = '''------WebKitFormBoundaryTm8YXcJeyKDClbU7
Content-Disposition: form-data; name="method"
getupload
------WebKitFormBoundaryTm8YXcJeyKDClbU7\r\nContent-Disposition: form-data; name="uploadID"
1xxxxxxxxxx;--
------WebKitFormBoundaryTm8YXcJeyKDClbU7--'''
分析:
关键在于 form-data
在传输的过程中,需要\r\n来间隔,
但外面直接在 字符串中 回车
形成的效果,看似和\r\n
的效果相同,但是实际的情况中会缺少这两个字符
所以在直接传输的过程中,我们需要用\r\n
来使用,不能直接在字符串中回车。
看到这个老哥的文章,才想到可能是这样的错误情况:
https://blog.csdn.net/Chihwei_Hsu/article/details/81943008
根据使用下来的情况,写了一个函数来直接配套:
def formdatacl(data):
temp = "\r\n".join(data.split("\n"))
return temp