思路
1)需要一个文件类型的参数:Filedata
2)需要两个字符串类型的参数,分别为用户上传钥匙(writetoken)和视频信息(JSONRPC)
3)使用requests框架发送post请求
4)使用json框架将响应内容解析为字典
5)使用unittest框架进行验证
接口地址
http://v.polyv.net/uc/services/rest?method=uploadfile
接口功能描述
作用:上传本地视频
接口参数说明
writetoken:string类型,用户的上传钥匙
JSONRPC:string类型,json格式,{"title": "标题", "tag":"标签","desc":"描述"}
Filedata:file类型,支持的文件格式为:flv, avi, mpg, mp4, wmv等
响应结果码说明
0:无错误,上传成功
1:找不到writetoken关联的user
2:文件为空或者writetoken为空
3:提交的json名字JSONRPC为null
4:提交文件格式不正确
15:后台处理出错
16:用户的可用空间已用完
17:writetoken已经过期
设计python脚本
# coding=utf-8
import requests
import json
import unittest
class UploadTest(unittest.TestCase):
"""
请求上传视频的接口
"""
def test_upload(self):
"""
test case
:return:
"""
url = 'http://v.polyv.net/uc/services/rest?method=uploadfile'
jsonrpc = "{\"title\": \"标题yzc0116\", \"tag\":\"标签yzc0116\",\"desc\":\"描述yzc0116\"}"
filepath = 'C:\\Users\\yangzc\\Desktop\\FlickAnimation.avi'
# 打开文件
fo = open(filepath, 'rb')
# video表示实际的文件参数
video = {'Filedata': fo}
# params表示实际的参数列表,包括:writetoken和JSONRPC这两个参数
params = {'writetoken': '7043f898-8322-4e39-8bb5-7956bf0eb641', 'JSONRPC': jsonrpc}
response = requests.post(url, data=params, files=video)
print(response.text)
# self.assertEqual("{\"error\":\"0\"}", response.text)
entity = json.loads(response.text)
self.assertEqual(0, int(entity['error']))
# 关闭文件
fo.close()
运行python脚本
image.png参考资料
open函数使用参考:
http://www.runoob.com/python/python-func-open.html
requests使用参考:
https://www.cnblogs.com/ranxf/p/7808537.html
https://www.cnblogs.com/lilinwei340/p/6417689.html
网友评论