Post请求在Postman中正常运行,Python代码执行返回404错误
解决Postman导出Python代码请求返回404错误的问题
我通过Postman的Interceptor同步浏览器Cookie后,能成功向科威特司法部电子服务网站发送POST请求,但导出的Python requests代码运行时却返回404状态码,且响应内容是显示“حدث خطأ ما”(即“发生了错误”)的阿拉伯语页面。
导出的Python代码(无法正常运行)
import requests url = "https://eservices.moj.gov.kw/execFileUpload2" payload = {'selectAser': '211053300', 'phoneNo': '55075052', 'selectAsed': '120987470-1', 'comReg': '', 'bankType': '1850', 'attachments': '(binary)', 'searchType': '0745'} files=[ ] headers = { 'Cookie': 'BNES_JSESSIONID=FBVxGgtjjJhDGmcnG/XOglUeuJlG/mwpJH9+ICQw/bL3/2Y383HWR4f+WzRXsJBG5jHf33qCsgMBOHLeTKxJRBwlkrkKE1tGbdywVgdikWhC4VcCUd1yIIYJBFm4m/60lfkGqvgk+UfaMbPKe3CUVRvsTaMCLn+A; BNIS___utm_is1=834onz3cMbm6+rxfXql7Q9R5wUqKP9h0Og9waF061RytqqFpbicKoodJVczfRblgLKkNejO9xULfy/gV59QKOKqOE5nH62HC/3yuYJehn8hT5JL0Trtl1Q==; BNIS___utm_is2=h3TrzcqVULgLWXXvNz3L2bQtrG+U/tHgaCBTF5MLDA6zaHEpzzwCy9Rj99RJySZUYmO8bQuFJ6s=; BNIS___utm_is3=xl2RfksMuxdJJrgDWe3RlTXaGAMcCXNp8jk39UeD37JWegODHQm0CVYCakYal9jUfWovaY2FrKriBIFNQOFbyIxcgMpHKnERXJrFCsvLKrmZNPgeZdMezA==; BNIS_vid=dVdYD1HKY4P0pa5whnuuvLgo71u2130LdG9wpcgfK0yYw3B1mLAfK2pzLr7+xPH1h3PVudRNDGJQHyVY0Y9fVfhte25qE3ArdMOHRB4jcyMGq/9iCsU5goBa1Q2hVs/8Fqd53PjKs7hT81XeYQ8Jtani11zEpPgkw70aLejHmSSykk8nACMnKMr0zP4RqoujmqEbAHE3+e6Odf2XSkBCWh3jPiyUqWmU4zYGail1N6A=; JSESSIONID=6ZLK74MAMrYOWAb39OQ7EYLHtt9GjRFzwvgwACd9idbb76Fe7q4p!669384774' } response = requests.request("POST", url, headers=headers, data=payload, files=files) print(response.text)
错误响应内容
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html dir="rtl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1256"> <title>::بوابة العدل الالكترونية::</title> <link type="text/css" rel="stylesheet" href="/Styles/NMaster.css" /> <style type="text/css"> <!-- H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} PRE, TT {border: 1px dotted #525D76} A {color : black;}A.name {color : black;} --> </style> </head> <body> <h1 style="text-align:center">حدث خطأ ما </h1> </body> </html>
解决方法
- 更新Cookie:代码里的Cookie是静态快照,可能已过期。重新从浏览器或Postman中复制最新的Cookie替换到
headers里,或者改用requests.Session自动维护会话Cookie。 - 修复文件上传参数:Postman导出的
attachments: '(binary)'是占位符,并非有效参数。如果需要上传文件,用files参数指定本地文件路径:
如果不需要上传文件,直接删除files = {'attachments': open('你的文件路径', 'rb')}attachments参数,避免服务器解析出错。 - 补充关键请求头:服务器可能会验证
User-Agent、Referer等标识信息,从Postman中复制完整的请求头添加到代码,例如:headers = { 'Cookie': '最新Cookie', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', 'Referer': 'https://eservices.moj.gov.kw/发起请求的页面URL' } - 改用Session管理会话:使用
requests.Session可以自动处理Cookie和会话状态,避免手动复制Cookie的繁琐,示例代码:import requests session = requests.Session() # 先访问网站获取初始会话状态 session.get('https://eservices.moj.gov.kw/') url = "https://eservices.moj.gov.kw/execFileUpload2" payload = { 'selectAser': '211053300', 'phoneNo': '55075052', 'selectAsed': '120987470-1', 'comReg': '', 'bankType': '1850', 'searchType': '0745' } # 如需上传文件,取消下方注释并修改文件路径 # files = {'attachments': open('file_path.ext', 'rb')} session.headers.update({ 'User-Agent': '你的浏览器User-Agent', 'Referer': 'https://eservices.moj.gov.kw/来源页面URL' }) # 若有文件上传,添加files=files参数 response = session.post(url, data=payload) print(response.text)
内容的提问来源于stack exchange,提问作者YasserKhalil
相关产品推荐
相关产品推荐

