requests模拟上传照片
博客园相册管理中有上传照片的功能

现在通过requests库模拟上传图片功能
先手动上传图片,用Fiddler转包,查看到上传图片接口请求格式,

------WebKitFormBoundarySKZgXsXRXkvNw6Bi
Content-Disposition: form-data; name="__EVENTTARGET" ------WebKitFormBoundarySKZgXsXRXkvNw6Bi
Content-Disposition: form-data; name="__EVENTARGUMENT" ------WebKitFormBoundarySKZgXsXRXkvNw6Bi
Content-Disposition: form-data; name="__VIEWSTATE" kkzLcEdwomKTumlDx0qsY5oyG9TNu9f9/Ad1HFfZLMkfLeaTbbwaJm9oEr3vQ1VWvk/4hCB1ZixBVHWsIAaUpgyuB45+om4Fu/CngbvX+uNE0MLo9oISQW2zj4EaQC3XJ/oI8iI8qKFVt7FFlMvIffYnY00LBWYsXhCQv6WNna+xpgrNkPw29RaF0NN6e6ykYJJG1DOLIv8PIDEvWK+NkivLuWO0UPd3LrzXFifpbc6qi+fvrmei2UMG2MqjJ3wgH9NYIIV98HQ4dfGmYQf0U3GsbNrX/HFHgfPYE6Mc/slvMlMzhxx/D1qFmMd6lU+6uzsDEjxrEROAkNEuW6Nn1kGNs/1s2W8BiV1wJNoywk3YVOgYuCeJiP6+F7+sJ/ovNcCFRSpkAmFjAIUX63OPfJJlbvnmjjOhmHm93C30GpaRviDCJoDoISK87fqK2y0c1t4DXQ8wmm1aYTcOV7V6bQF8wGR7Sa3eBnL46+32sgYy3YqVxsts7LJwmTXpU/MwwYEk1EAXO434ZmHswKny/DgAncHt1SyMj9g3oSUBTwL9pTKHnSLosDtxtUGtb+gVxT8m1FCnAPzpNYQ++EBX5NhnXDoW91LwyHmVC8uS8js0WUS++HB7LZcl/q0GpsRx+Wh6lWSA3l8SD+JML5sfR+bvf10x24nn7GdDixamUbnURDkq/id2qGi5JTYeBIFPj+HEcJH+QVWV9JWnkNuCdY+NeD+Tm9CQAZOxJ4YLyd03iVZzCb1P5scjEYdp5oW81r+CoY7YTLF0JIOB6o8GcTugGWc7WLO9jQZcDdnyrPMAkhfotWXElNDNYxlsFH8/c034n6pv9V0pnieCiPDJx/xNPeu793SuxDJSe9t6TV7M7fnyUrmn6w6zo8RllcySyBX7cBtQN4XzVYtFWLwtc7NQZYp4WSuUaGvSpK1G7RpmhHGhqB+LWdIn6kbQh1MagOoxXFx9zsgxtarcCLUiqBfh69GnT4L0KavPii8OaBotkh1zWXFkSGI605DFFqxGmEaacF4ZFpTMQ9PRckBhFv+p9WTQUjaMivVHahpNgJ2qKZTA/4QsArPImDHfrxQ5KmW3vQHT50KVBsAfjnGZeUtvysAnewUQGpC7Fbi5L0ULxg88lINyLzqapmbkT8P8Hjie9/Pq7q/0pXmVDPhfkn7nFYFx6DT4RVi9lNBYGVs+F+UW/wBEDNvEWzPVWIq0T+SX8CqGcNQta4nr2GawX9VgOswKIZ3yVBmJAYCEvj5WLs6oKCNc5LZnPYfT6raBsCxrvlPkSx35oWX9yn4sxbSk06MMIGoWk8x5pF2wgVrCX/0XA3JClcGNfNXO2IJl9DX563A6SulLuGV3XKA5/Qn5EJS6faXcbSwx/5ZzyH7XclHuOiixVAS0QSTfR9kemX42HTJsYO6AnfEOPKMUGd7QtWpC2nCwx4wCN5rRFeHhuk7xQIHBnZknF5H17phvBE4VafVKZpOhMWvP/OAQqNYt1DhXB28cG8gt7BbyGowjNn9nSbqDA3OYwuTqDhwSocP3y+iFtD8Eaa2sUjRhXz9vF1qzldF6hi9Im/NbFmiL3DXMARsp2K6WnTQmOV9Uppez6m9dnC0UDWnaR4UEzKkOZdP/r+0B0JqV0H8EZVg8SjTZZeL0ISUAoYbL8JVsIuUQ6tXR3AZYZwu8TvTITvcBv3FmoG3pAn2wLCLuMSTJGGM/PVbOyPtruusV7xIixN4XP+K4r+r/ZKXhcul1oMTHuBBBnz3vfvzvaCcLlSOsDlYHjzm4dPGhCnI9faGlilkrDACMXJQBR3I1r8ljtIoik1tF3gIAIF1X9IFkrNAnGD+29T5o1fA+VoAPlfzeVr+VLC2WpQ582LCGnU3c+jEw7afxB0EdPvXF01Xgue1fRo+YvRRpKyQu6UpKC3AU062MHZHeyO0EtCgWoLBYeTBAPSMjFqy/V+dH2M/9toc6ZpTK38mnmDdNgIvz0Jl/OoyTs3UiNLw7wfYFp1VBEFgCCFFyIMo2Vhb5go3eJqlSho9B
------WebKitFormBoundarySKZgXsXRXkvNw6Bi
Content-Disposition: form-data; name="__VIEWSTATEGENERATOR" 8BEC36A2
------WebKitFormBoundarySKZgXsXRXkvNw6Bi
Content-Disposition: form-data; name="Results$Add$txbNewTitle" ------WebKitFormBoundarySKZgXsXRXkvNw6Bi
Content-Disposition: form-data; name="Results$Add$ckbNewIsActive" on
------WebKitFormBoundarySKZgXsXRXkvNw6Bi
Content-Disposition: form-data; name="Results$Add$txbNewDescription" ------WebKitFormBoundarySKZgXsXRXkvNw6Bi
Content-Disposition: form-data; name="AddImages$ImageFile"; filename="20120611175238_aCNGz.jpg"
Content-Type: image/jpeg
切换到WebForms

思路参考:
https://www.cnblogs.com/yoyoketang/p/7990127.html
https://www.cnblogs.com/titan5750/p/6879114.html
代码如下:
登录部分的代码不复制,只贴出上传图片的代码,登录部分参考https://www.cnblogs.com/yoyoketang/p/7990127.html
# 上传图片
f = {"AddImages$ImageFile":("57e9d2a834496.jpg",open("/Users/kki/Downloads/57e9d2a834496.jpg","rb"),"image/jpeg")} data4 = {"Results$Add$ckbNewIsActive":"on",
"AddImages$ckbIsActiveImage":"on",
"AddImages$lbkAddImage":"Add",
"AddImages$txbImageTitle":"我来上传图片",
"__VIEWSTATEGENERATOR":"8BEC36A2",
"__VIEWSTATE":"kkzLcEdwomKTumlDx0qsY5oyG9TNu9f9/Ad1HFfZLMkfLeaTbbwaJm9oEr3vQ1VWvk/4hCB1ZixBVHWsIAaUpgyuB45+om4Fu/CngbvX+uNE0MLo9oISQW2zj4EaQC3XJ/oI8iI8qKFVt7FFlMvIffYnY00LBWYsXhCQv6WNna+xpgrNkPw29RaF0NN6e6ykYJJG1DOLIv8PIDEvWK+NkivLuWO0UPd3LrzXFifpbc6qi+fvrmei2UMG2MqjJ3wgH9NYIIV98HQ4dfGmYQf0U3GsbNrX/HFHgfPYE6Mc/slvMlMzhxx/D1qFmMd6lU+6uzsDEjxrEROAkNEuW6Nn1kGNs/1s2W8BiV1wJNoywk3YVOgYuCeJiP6+F7+sJ/ovNcCFRSpkAmFjAIUX63OPfJJlbvnmjjOhmHm93C30GpaRviDCJoDoISK87fqK2y0c1t4DXQ8wmm1aYTcOV7V6bQF8wGR7Sa3eBnL46+32sgYy3YqVxsts7LJwmTXpU/MwwYEk1EAXO434ZmHswKny/DgAncHt1SyMj9g3oSUBTwL9pTKHnSLosDtxtUGtb+gVxT8m1FCnAPzpNYQ++EBX5NhnXDoW91LwyHmVC8uS8js0WUS++HB7LZcl/q0GpsRx+Wh6lWSA3l8SD+JML5sfR+bvf10x24nn7GdDixamUbnURDkq/id2qGi5JTYeBIFPj+HEcJH+QVWV9JWnkNuCdY+NeD+Tm9CQAZOxJ4YLyd03iVZzCb1P5scjEYdp5oW81r+CoY7YTLF0JIOB6o8GcTugGWc7WLO9jQZcDdnyrPMAkhfotWXElNDNYxlsFH8/c034n6pv9V0pnieCiPDJx/xNPeu793SuxDJSe9t6TV7M7fnyUrmn6w6zo8RllcySyBX7cBtQN4XzVYtFWLwtc7NQZYp4WSuUaGvSpK1G7RpmhHGhqB+LWdIn6kbQh1MagOoxXFx9zsgxtarcCLUiqBfh69GnT4L0KavPii8OaBotkh1zWXFkSGI605DFFqxGmEaacF4ZFpTMQ9PRckBhFv+p9WTQUjaMivVHahpNgJ2qKZTA/4QsArPImDHfrxQ5KmW3vQHT50KVBsAfjnGZeUtvysAnewUQGpC7Fbi5L0ULxg88lINyLzqapmbkT8P8Hjie9/Pq7q/0pXmVDPhfkn7nFYFx6DT4RVi9lNBYGVs+F+UW/wBEDNvEWzPVWIq0T+SX8CqGcNQta4nr2GawX9VgOswKIZ3yVBmJAYCEvj5WLs6oKCNc5LZnPYfT6raBsCxrvlPkSx35oWX9yn4sxbSk06MMIGoWk8x5pF2wgVrCX/0XA3JClcGNfNXO2IJl9DX563A6SulLuGV3XKA5/Qn5EJS6faXcbSwx/5ZzyH7XclHuOiixVAS0QSTfR9kemX42HTJsYO6AnfEOPKMUGd7QtWpC2nCwx4wCN5rRFeHhuk7xQIHBnZknF5H17phvBE4VafVKZpOhMWvP/OAQqNYt1DhXB28cG8gt7BbyGowjNn9nSbqDA3OYwuTqDhwSocP3y+iFtD8Eaa2sUjRhXz9vF1qzldF6hi9Im/NbFmiL3DXMARsp2K6WnTQmOV9Uppez6m9dnC0UDWnaR4UEzKkOZdP/r+0B0JqV0H8EZVg8SjTZZeL0ISUAoYbL8JVsIuUQ6tXR3AZYZwu8TvTITvcBv3FmoG3pAn2wLCLuMSTJGGM/PVbOyPtruusV7xIixN4XP+K4r+r/ZKXhcul1oMTHuBBBnz3vfvzvaCcLlSOsDlYHjzm4dPGhCnI9faGlilkrDACMXJQBR3I1r8ljtIoik1tF3gIAIF1X9IFkrNAnGD+29T5o1fA+VoAPlfzeVr+VLC2WpQ582LCGnU3c+jEw7afxB0EdPvXF01Xgue1fRo+YvRRpKyQu6UpKC3AU062MHZHeyO0EtCgWoLBYeTBAPSMjFqy/V+dH2M/9toc6ZpTK38mnmDdNgIvz0Jl/OoyTs3UiNLw7wfYFp1VBEFgCCFFyIMo2Vhb5go3eJqlSho9B"
} r4 = s.post(self.add_image_url,files=f,data=data4)
执行代码后,上传图片成功

requests模拟上传照片的更多相关文章
- 【转】asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端
原文地址:http://docode.top/Article/Detail/10002 目录: 1.Http协议上传文件(以图片为例)请求报文体内容格式 2.完整版HttpWebRequest模拟上传 ...
- 【代码笔记】iOS-图片手势,上传照片
代码: RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewControl ...
- Iphone H5上传照片被旋转
最近做项目发现在Iphone下,我们上传图片都会被翻转,最后查阅资料发现,的确是IOS的问题 不说过程,直接解决方法 iOS下,html方式使用<input type="file&qu ...
- Android使用XUtils框架上传照片(一张或多张)和文本,server接收照片和文字(无乱码)
Android上传图片,这里我使用了如今比較流行的XUtils框架.该框架能够实现文件上传.文件下载.图片缓存等等,有待研究. 以下是Android端上传的代码: xUtils.jar下载 Strin ...
- vc libcurl 模拟上传文件
http://www.cnblogs.com/killbit/p/5393301.html 附上这篇文章,因为当时就已经想到了模拟上传,但是因为时间关系,所以就直接用PHP写了.现在改进一下,用VC+ ...
- 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- Django项目:CRM(客户关系管理系统)--61--51PerfectCRM实现CRM客户报名流程学生合同上传照片
# sales_views.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.db import IntegrityError # 主动 ...
- mui调用本地相册调用相机上传照片
调用mui的常用库和jquery html部分: <header class="mui-bar mui-bar-nav"> <a class="mui- ...
- Requests库上传文件时UnicodeDecodeError: 'ascii' codec can't decode byte错误解析
在使用Request上传文件的时候碰到如下错误提示: 2013-12-20 20:51:09,235 __main__ ERROR 'ascii' codec can't decode byte 0x ...
随机推荐
- 整合Settings.bundle显示版本信息
本文转载至 http://www.cocoachina.com/ios/20141103/10112.html iOS开发XCode版本管理Debug开发Tips 现在你有一个App,你同事的iP ...
- 使用SqlDependency监听MSSQL数据库表变化通知
SqlDependency提供了这样一种机制,当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. ...
- 我的Android进阶之旅------>解决Your project contains error(s),please fix them
在使用eclipse写好Android的代码,代码没有报错.然后想在AVD中运行测试时,弹出错误框,提示信息为: "Your project contains error(s),pleas ...
- WordPress用户角色及其权限管理编辑插件:User Role Editor汉化版
如果Wordpress默认的用户角色及权限不能满足您的需求,又觉得修改代码编辑用户权限太麻烦.那不妨试试User Role Editor,Wordpress用户角色及其权限管理编辑插件. User R ...
- Java for LeetCode 111 Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- RaspBerry Pi3 ~ 内核编译
RaspBerryPi3-内核编译 转载注明出处:http://www.cnblogs.com/einstein-2014731/p/5985128.html 在有道云笔记的同步分享:http://n ...
- iPad actionsjeet
在iphone和ipad上使用UIActionShee控件t的效果会不一样,在苹果的官方文档中有相关说明: 在ipad上使用UIActionSheet控件改控件不再从底部弹出,而是从屏幕中间弹出与UI ...
- 开始使用Python
1. 开始使用Python 1.1 print使用str()函数显示对象,而交互式解释器调用repr()函数来显示对象. 1.2 在解释器中_表示最后一个表达式的值. 1.3 >>用来重定 ...
- WIFI模块ESP8266的使用指南【转】
本文转载自:http://www.itdadao.com/articles/c15a814052p0.html 本文主要对讲述ESP8266模块硬件连接工作,以及作为服务器和客户端情况下的配置实现的详 ...
- javscript 一些常用的工具方法
一些工作中经常会用到的js代码,可以封装成一个工具库. 积少成多,从现在开始吧! -------------- 1 . 判断一段文字的长度.要求中文相当于2个字符,非中文的相当于1个字符 String ...