当前位置: 首页 > news >正文

单页移动网页建站教程.net网站开发模板

单页移动网页建站教程,.net网站开发模板,宁波房产网上备案查询官网,自己学做网站我们在做接口测试之前#xff0c;先需要根据接口文档或抓包接口数据#xff0c;搞清楚被测接口的详细内容#xff0c;其中就包含请求参数的编码格式#xff0c;从而使用对应的参数格式发送请求。例如某个接口规定的请求主体的编码方式为 application/json#xff0c;那么在…我们在做接口测试之前先需要根据接口文档或抓包接口数据搞清楚被测接口的详细内容其中就包含请求参数的编码格式从而使用对应的参数格式发送请求。例如某个接口规定的请求主体的编码方式为 application/json那么在请求该接口时请求参数格式必须是 json 格式使用其他的编码方式请求不会成功。那么在http请求中请求主体常用的编码方式有哪些每种编码方式在python中需要对应使用什么样格式的请求参数这便是咱们在本篇博客要弄明白的地方。content-type在POST请求中由content-type指定请求参数的格式所以为了搞清楚请求参数的编码格式我们有必要了解HTTP请求头信息中的 content-type 字段。content-type的作用在HTTP协议中报文通常包括两个部分 请求头部(head)、请求主体(body)其中 body 可以为空如 GET 请求是将请求参数放在请求URL中而不是放在 body 中。而POST请求中的请求参数则是放在 body 中接收请求的一端也就是服务器需要知道传过来的 body 是什么类型的数据采用怎样的编码方式才能对数据进行对应的解析这时就需要在请求头中使用 content-type 来指明 body 的媒体类型。媒体类型媒体类型通常称为 Multipurpose Internet Mail Extensions 或 MIME 类型 是一种标准用来表示文档、文件或字节流的性质和格式。它在IETF RFC 6838中进行了定义和标准化。浏览器通常使用MIME类型而不是文件扩展名来确定如何处理URL因此Web服务器在响应头中添加正确的MIME类型非常重要。如果配置不正确浏览器可能会曲解文件内容网站将无法正常工作并且下载的文件也会被错误处理。而浏览器传过来的内容也需要指定媒体类型服务器才能根据媒体类型做对应的数据解析。常见的媒体类型如下另外还有 multipart 类型表示细分领域的文件类型的种类经常对应不同的 MIME 类型用于文件的上传分为如下两种multipart/form-data multipart/byteranges这里均只做简单说明具体每种类型的使用详情可自行查找相关资料。总之在接口测试中请求头中的 Content-Type 作用就是用来告知服务端请求body的编码方式。GET请求因为body为空所以在GET请求中没有Content-Type字段。get请求参数格式我们已经知道GET请求的请求参数是直接放在URL中的且不需要content-type指定媒体类型。而GET请求中的请求参数的编码格式为query string params。query string params说明query string params 格式参数会以 url string 的形式进行传递即?后的字符串则为其请求参数并以作为分隔符参数编写方式为?keyvaluekeyvalue拼接在 url 后面。通常用于GET请求除此之外其他有些请求方式也可以使用这种格式。在浏览器中打开百度搜索给你一页白纸-博客园通过F12抓包也可以看到 Payload 中请求参数的格式为 Query String Parameters如下图即打开URL链接https://www.baidu.com/s?ieutf-8wd给你一页白纸-博客园。python代码发送请求如果使用python中的 requests.get() 对上图示例发送get请求则需使用参数 params参数值为dict(字典)格式即可示例如下import requestsurl http://www.baidu.com/s params {wd: 给你一页白纸-博客园, ie: utf-8} res requests.get(urlurl, paramsparams) print(res.text)GET请求中请求主体编码格式固定在做接口测试时基本无需确定其编码格式较为简单。post请求参数格式对于HTTP协议中的POST请求其请求参数有不同的编码格式。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码 (即媒体类型)再对请求参数进行对应方式的解析。post请求常见的编码方式有四种application/x-www-form-urlencodedmultipart/form-dataapplication/jsontext/xmlapplication/x-www-form-urlencodedapplication/x-www-form-urlencoded 是最常见的 POST 提交数据的方式用于表单数据的提交。浏览器的原生form表单如果不设置enctype属性那么最终就会默认以 application/x-www-form-urlencoded 方式提交数据。说明POST请求使用 application/x-www-form-urlencoded 对请求参数进行编码时有以下特点请求头header中content-type的值为application/x-www-form-urlencoded请求参数会按照 key1value1key2value2 的方式进行编码且 key 和 value 都进行了 URL 转码服务器收到请求后会对应的方式对这种编码格式的请求参数进行解析虽然都将请求参数进行了 key1value1key2value2 形式编码但GET请求中会将编码后的内容拼接在URL后。以请求TesterHome网登陆接口为例Request Headers中的 content-type 为 application/x-www-form-urlencoded; charsetUTF-8。python代码发送请求使用python中的 requests.post() 请求上面图片中的接口时需使用参数data参数值为dict(字典)格式即可代码如下import requests 请求头的content-type为application/x-www-form-urlencoded data {user[login]: 账号,user[password]: 密码,user[remember_me]: 0,commit: 登录 } headers {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36,content-type: application/x-www-form-urlencoded; charsetUTF-8 } url https://testerhome.com/account/sign_in# 编码格式为application/x-www-form-urlencoded;charsetUTF-8使用data参数参数值为dict res requests.post(urlurl, headersheaders, datadata) print(res.text)multipart/form-datamultipart/form-data 也是一个常见的 POST 数据提交的方式用于上传文件。我们使用表单上传文件时必须让 form 表单的enctype等于 multipart/form-data。说明POST 请求使用 multipart/form-data 对请求参数进行编码时有以下特点使用 boundary 用于分割不同的字段消息主体中按照字段个数又分为多个结构类似的部分每部分都以--boundary开始紧接着下一行是内容描述信息再下一行是字段具体内容文本或二进制。如果传输的是文件还要包含文件名和文件类型信息消息主体最后以 --boundary-- 标示结束示例如下POST http://www.example.com HTTP/1.1Content-Type:multipart/form-data; boundary----WebKitFormBoundary8G1vtgT1pXWqqHzV------WebKitFormBoundary8G1vtgT1pXWqqHzVContent-Disposition: form-data; nametxttitle------WebKitFormBoundary8G1vtgT1pXWqqHzVContent-Disposition: form-data; namefile; filenameblog.pngContent-Type: image/pngPNG ... content of blog.png ... ------WebKitFormBoundary8G1vtgT1pXWqqHzV--python代码发送请求例如我们在请求牛图网的上传图片的接口时Requests Headers 中为content-type: multipart/form-data; boundary----WebKitFormBoundary4aA3ZrkOVwUIvmx0如下图所示在python中使用requests.post()请求该接口代码示例如下import requests 请求头的content-type为multipart/form-data defpost_mulitpart_form_data():headers {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36,content-type: multipart/form-data; boundary----WebKitFormBoundary4aA3ZrkOVwUIvmx0}url https://www.niupic.com/api/uploadfilepath ./dianzan.jpg# 读取上传文件的内容files {file: open(filepath, rb)}# 使用files参数接收请求内容即读取的上传文件内容res requests.post(urlurl, headersheaders, filesfiles).contentprint(json.loads(res))if __name__ __main__:post_mulitpart_form_data()运行结果如下C:\Users\xiaoqq\AppData\Local\Programs\Python\Python37\python.exe E:/blog/python接口自动化/flask_demo/test.py {status: success, code: 200, data: https://i.niupic.com/images/2022/02/20/9V3n.jpg, msg: 上传成功!}Process finished with exit code 0application/x-www-form-urlencoded 与 multipart/form-data 这两种 POST 请求的数据编码方式都是浏览器原生支持的且现阶段标准中原生form表单也只支持这两种方式通过form元素的enctype属性指定默认为 application/x-www-form-urlencoded。其实enctype还支持text/plain不过用得非常少。application/json在一般公司的普通业务场景中application/json 很常见用来告诉服务端消息主体是序列化后的json字符串即前端传给服务端的数据是json格式的。也就是说如果请求头中 content-type 为 application/json那么我们在使用工具如postman或python脚本模拟请求接口时请求参数也需要先转换成json格式然后才能发送请求。代码示例如下import requests import json 请求头的content-type为application/json headers {Content-Type: application/json;charsetutf8} url http://127.0.0.1:5000/login _data {username: lilei,password: 123456 }# 这里使用json参数即json_data res requests.post(urlurl, headersheaders, json_data).text # 当然还可以使用data参数但需先将_data转换为json格式即datajson.dumps(_data)# json.dumps()将dict格式转换成json格式 res requests.post(urlurl, headersheaders, datajson.dumps(_data)).text print(res)text/xmlpost请求中有些请求主体的编码格式为 text/xml即请求头中content-type 字段对应值为 text/xml对于这样的接口我们需要使用xml格式的参数去发送请求。使用 requests.post() 发送请求参数为xml格式的post请求时只需要将xml文件中的body部分写成一个字符串类型就行遇到换行时在后面加个反斜杠并将这个字符串赋值给data参数。代码示例如下import requests 请求头的content-type为text/xml defpost_text_xml():headers {Content-Type: text/xml}url http://httpbin.org/postbody ?xml version1.0 encoding UTF-8? \COM \REQ name给你一页白纸 \USER_ID/USER_ID \COMMODITY_ID111111/COMMODITY_ID \SESSION_IDasdfghjklfr0123/SESSION_ID \/REQ \/COMres requests.post(urlurl, headersheaders, databody.encode(utf-8)).textprint(res)if __name__ __main__:post_text_xml()运行结果如下C:\Users\xiaoqq\AppData\Local\Programs\Python\Python37\python.exe E:/blog/python接口自动化/flask_demo/test.py {args: {}, data: ?xml version\1.0\ encoding \UTF-8\?COMREQ name\\u7ed9\u4f60\u4e00\u9875\u767d\u7eb8\USER_ID/USER_IDCOMMODITY_ID111111/COMMODITY_IDSESSION_IDasdfghjklfr0123/SESSION_ID/REQ/COM, files: {}, form: {}, headers: {Accept: */*, Accept-Encoding: gzip, deflate, Content-Length: 182, Content-Type: text/xml, Host: httpbin.org, User-Agent: python-requests/2.24.0, X-Amzn-Trace-Id: Root1-6211ebd3-2cc90293777649ba01e50b08}, json: null, origin: 101.71.37.212, url: http://httpbin.org/post }Process finished with exit code 0总结这里只介绍了HTTP协议中 GET请求 和 POST请求 常见的请求参数编码格式怎样确定请求参数的编码格式以及在python代码中使用requests发送请求时需要使用怎样格式的参数。我们总结如下GET请求请求参数编码格式为query string paramsrequests.get() 发送请求时使用params参数params的值 (即请求参数) 为字典格式POST请求主体的编码格式需要根据请求头中的content-type字段确定content-type: application/x-www-form-urlencodedrequests.post() 发送请求时使用data参数data的值 (即请求参数) 为字典格式content-type: multipart/form-datarequests.post() 发送请求时使用files参数files的值 (即请求参数) 即为读取的上传文件的内容content-type: application/jsonrequests.post() 发送请求时使用json参数json的值 (即请求参数) 为字典格式或者也可以使用 data 参数但此时需要先将请求参数转换为json格式content-type: text/xmlrequests.post() 发送请求时使用data参数data的值 (即请求参数) 为 xml 中的body部分内容具体的脚本编写方法参考示例代码。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。电商项目实战web测试项目webApph5小程序 测试项目接口自动化测试实战项目Linux实战项目面试资料我们进阶学习自动化测试必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。以上资料对于想要测试进阶的朋友们来说应该会很有帮助需要的小伙伴可以后台私信找我免费领取。总结我见过很多leader在面试的时候遇到处于迷茫期的大龄程序员比面试官年龄都大。这些人有一些共同特征可能工作了好几年更夸张的是7、8年工作内容的重复性比较高没有什么技术含量的工作。凡事要趁早特别是技术行业一定要提升技术功底丰富自动化项目实战经验这对于你未来几年职业规划以及测试技术掌握的深度非常有帮助。如果对你有帮助的话点个赞收个藏给作者一个鼓励。也方便你下次能够快速查找。如有不懂还要咨询下方小卡片博主也希望和志同道合的测试人员一起学习进步在适当的年龄选择适当的岗位尽量去发挥好自己的优势。我的自动化测试开发之路一路走来都离不每个阶段的计划因为自己喜欢规划和总结测试开发视频教程、学习笔记领取传送门
http://www.w-s-a.com/news/53648/

相关文章:

  • 免费域名查询网站wordpress wordfence
  • h5响应式网站模板制作巴南网站制作
  • 网站方案报价软文什么意思
  • 电子商城网站如何建设上海公司车牌价格
  • 丽江网站设计公司专业公司网站设计企业
  • iis怎么建设网站特色产品推广方案
  • 道路建设网站专题品牌网站建设特色大蝌蚪
  • 网站开发组合 所有组合如何做com的网站
  • 电商网站怎么做的Wordpress 报表的插件
  • 纹理网站推荐买了两台服务器可以做网站吗
  • 机关公文写作网站南宁互联网推广
  • 五指山网站开发价格免费申请网站域名
  • 帝国音乐网站怎么做数据表电脑优化软件
  • 做国外网站收款怎么收建筑人才招聘网站
  • 毕设做桌面端还是网站sns社交网站 建设
  • 建设一个网站需要注意哪些内容wordpress 进销存
  • 沈阳市建设局网站sem优化师是什么意思
  • 餐饮vi设计公司网站排名优化方法讲解
  • 无线昆明官方网站可以做书的网站
  • 信誉最好的20个网投网站凡科网站建设之后怎么删除
  • 天津网站开发技术广州网站优化公司排名
  • 养老做增减的网站医院网站怎么做优化排名
  • 企业网站的推广方法有哪些上海猎头公司前十名
  • 电商网站建设建议免费下载app
  • 网站搭建设计是什么意思百度地图放到网站上
  • 东莞网站建设市场分析淘宝网站框架
  • 新网站多久被百度收录网站空间单位
  • 2017常用的网站昆明网站代理
  • 成都海鸥手表网站安阳网站建设策划
  • 做好的网站怎么发布做网站应该做哪方面的