http请求

Jmeter上传图片接口

笑着哭i 提交于 2020-03-30 05:58:20
使用badboy录制后,在jmeter中出现以下错误(java.io.FileNotFoundException),后来发现提交的数据需要上传图片: 正确的测试如下: 如上图所示: 1、添加一个sampler下面的HTTP请求 2、方法选择POST 3、在Parameters中填入各个参数的值 4、在Files upload中添加上传图片的参数值: a、点击该栏目下的添加按钮; b、点击浏览按钮,选择一张需要上传的图片,地址将会自动记录到文件名称栏目; c、填写参数名称,根据需求可知为【news_image】; d、MIME类型为multipart/form-data。 执行 保存该HTTP请求,并执行,查看服务器,即可发现,上面步骤选择的图片已经成功上传到服务器。 来源: https://www.cnblogs.com/sunshine2016/p/5570592.html

nodejs学习笔记

依然范特西╮ 提交于 2020-03-30 05:01:48
Nodejs学习文档整理 1、nodejs是什么: nodejs是一个是javascript能在后台运行的平台,具体来时只是使code javascript能在后台运行,因为不在浏览器中运行所以不涉及到document等对象。(Mozilla 则指出 JavaScript 由Core JavaScript 和 Client JavaScript 组成。) 2、nodejs如何运行javascript: nodejs利用谷歌的v8引擎来执行javascript代码(V8认为是javascript的引擎中最快的)。 3、nodejs的特性: Node.js 用异步式 I/O 和事件驱动代替多线程,带来了可观的性能提升。nodejs采用单线程的非阻塞模式,可以使CPU的利用率达到100%。(单线程是指我们所写的代码代码每次只能执行一行,nodejs本身不是单线程的,比如我们调用了nodejs的ioAPI,系统会通过c/c++开辟其他线程来完成,nodejs的底层是由c/c++完成的)nodejs本身提供HTTP服务,也就是说你可以轻而易举地实现一个网站和服务器的组合而nodejs项目不需要类似tomcat等web容器。 4、nodejs适合的做什么,不适合什么: 适合:具有复杂逻辑的网站; 基于社交网络的大规模 Web 应用;Web Socket 服务器; TCP/UDP 套接字应用程序

(8)Django框架学习-python模拟Django框架

廉价感情. 提交于 2020-03-30 04:28:44
原贴来源 http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/AbtWebModules python实现web服务器 web开发首先要有web服务器才行。比如apache,但是在开发阶段最好有一个简单方便的开发服务器, 容易重启进行调试,等开发调试完毕后,再将代码部署到成熟稳定高效的web服务器。 # -*- coding: utf-8 -*- from wsgiref import simple_server # 定义一个输出 hello world 和环境变量的简单web应用程序 def hello_app(environ, start_response) : # 输出 http 头,text/plain 表示是纯文本 start_response( '200 OK' , [( 'Content-type' , 'text/plain' )]) # 准备输出的内容 content = [] content.append( 'Hello world' ) for key, value in environ.items() : content.append( '%s : %s' % (key, value)) # 输出,根据 wsgi 协议,返回的需要是一个迭代器,返回一个 list 就可以 return [ '\n' .join

HTTP

大兔子大兔子 提交于 2020-03-29 04:08:12
HTTP和REST 1. HTTP? HTTP是应用层网络传输协议。所以,和其他网络协议一样,是为了实现两台电脑之间的信息传输,不过接收的电脑是作为服务器。 组成: 1.1 URL 1. Uniform Resource Locator,统一资源定位符,顾名思义,用来标识服务器上的资源文件,和数据库的id一样,每个文件都得通过URL来查找。 2. url由下划线分隔的字符串组成,以http或https开头 1.2 JSON / XML JavaScript Object Notation,HTTP协议的数据交换格式,同样的,XML(eXtensible Markup Language)是另一种可选格式。 1.3 request / response HTTP通过GET、POST、PUT、DELETE等方法(也称HTTP动词)来向服务器发送请求信息,并以HTTP请求消息的形式进行编码。请求消息的组成: 请求行 请求头字段 空行 可选的请求体 响应消息的组成: 响应行,包含 状态码 和及其原因 HTTP/1.1 200 OK 响应头字段 Content-Type: text/html 空行 可选的响应体 客户端如何处理,根据状态码和响应头字段。( status codes are machine-readable and reason phrases are human

Python接口自动化测试01

人盡茶涼 提交于 2020-03-28 00:39:33
1)环境准备:   接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的进行选择,甚至当工具不太适合项目时需要自己进行开发。   在我们项目的初期,我们采用的是jmeter进行接口测试,当时觉得这个工具上手简单,团队成员学习成本低,并且接口测试的脚本稍微调整一下还可以用来做性能测试。   不过随着项目规模、团队人数的不断增长,渐渐的这个工具有适应不了当前项目的需求了,为此我们项目也重新开发了相关接口自动化的平台。但是,但是。。。可能是我让大家中毒太深,现在很多同学一提到接口测试关联到jmeter,为此,我深深感到不安。毕竟jmeter只是个工具,换个项目换个协议你是否还能玩转接口测试呢?session和cookie有什么区别?工具又是怎么实现的呢?   比如session如何保存,接口依赖如何处理,case如何管理及执行顺序,测试数据如何管理等等题,这个过程也有助于我们更加深刻的理解接口测试和http协议。   本文主要采用python语言,python中http协议接口相关的库有urllib,urllib2以及reqeusts库,这其中reqeusts库用来起来最方便,因此我也主要采用requests库来做http协议的接口测试

QQ音乐API

混江龙づ霸主 提交于 2020-03-27 19:33:07
之前对接过QQ音乐的可能还在用之前的,例如 http://tsmusic24.tc.qq.com/{$song_id}.mp3 这个就不能使用了,废物不多说,我们直接进入正题。 第一种方法: 搜索歌曲和歌手: 请求地址:https://c.y.qq.com 请求实例: https://c.y.qq.com/soso/fcgi-bin/music_search_new_platform?searchid=53806572956004615&t=1&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=2&w=没那么简单 参数 说明 是否必须 默认值 p 分页 否 默认为1 n 请求数量 否 默认为10 w 关键字 是 无 format 格式化 否 如果用Retrofit的Json解析的话记得一定要format=json 这个请求返回的数据,我们会发现有一个f的: "f":"649069|没那么简单|4740|黄小琥|55176|简单不简单|2492289|307|8|1|1|12327908|4931284|0|0|0|32998268|6570790|7425738|0|003Ue6Ia32q4gl|0003Aksc3Iisgq|002Gbc9W0oOAS3|0|4009", f属性中以“|

HTTP 5 确保Web安全的HTTPS、确认用户身份的认证

若如初见. 提交于 2020-03-26 18:54:37
7. 在HTTP协议中有可能存在信息窃听或身份伪装等安全问题。使用HTTPS通信机制可以有效地防止这些问题。 HTTP的缺点: 通信使用明文(不加密),内容可能会被窃听。 不验证通信方的身份,因此有可能遭遇伪装。 无法证明报文的完整性,所以有可能已遭篡改。 加密处理防止窃听:分通信的加密、内容的加密 通信的加密: HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。 用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了。与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)或HTTP over SSL。 内容的加密: 还有一种将参与通信的内容本身加密的方式。由于HTTP协议中没有加密机制,那么就对HTTP协议传输的内容本身加密。即把HTTP报文里所含的内容进行加密处理。 这种情况下,客户端需要对HTTP报文进行加密处理后再发送请求。 为了做到有效的内容加密,前提是要求客户端和服务器同时具备加密和解密机制。 不验证对方通信的身份: HTTP协议的实现本身非常简单,不论是谁发送过来的请求都会返回响应,因此不确认通信方,会存在以下各种隐患:

Http 请求返回码解析

会有一股神秘感。 提交于 2020-03-26 09:46:56
一.状态码: 1. 2XX 成功 1.1 200 ok 成功 1.2 204 No Content(处理成功但没有返回结果) 1.3 206 Partail Content(对资源的部分请求,响应报文中包含有Content— —Range指定范围的实体内容) 2. 3XX 重定向 ( 浏览器需要执行某些特殊的处理以正确处理请求 ) 2.1 301Moved Permanently(需要进行书签引用的变更),永久重定向 2.2 302 Found 临时重定向(请求的资源已经被分配了新的URL) 2.3 303 See other 与302相似但明确表示客户应采用get方法获取资源 2.4 304 Not Modified(允许访问资源,但请求未满足条件和重定向没有关系) 2.5 307 Temporary Redirect(临时重定向) 3. 4XX 客户端错误 3.1 400 Bad Request(请求报文中存在语法错误) 3.2 401 Unauthorized(发送的请求需要有经过http认证的认证信息) 3.3 403 Forbidden 禁止访问资源 3.4 404 Not Found 服务器上没有请求的资源 3.5 406 错误 – 无法接受 (Not acceptable) 4. 5XX 服务器端错误 4.1 500 Internal Server Error

HTTP 4 HTTP首部

社会主义新天地 提交于 2020-03-26 00:07:38
6. HTTP协议的请求和响应报文中必定包含HTTP首部。 首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。 报文首部由几个字段构成。 HTTP请求报文: 在请求报文中,HTTP报文由方法、URI、HTTP版本、HTTP首部字段等部分构成。 HTTP响应报文: 在响应中,HTTP报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分构成。 HTTP首部字段: HTTP首部字段是构成HTTP报文的要素之一。在客户端与服务器之间以HTTP协议进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用。 使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。 HTTP首部字段结构: HTTP首部字段是由首部字段名和字段值构成的,中间用冒号“:”分隔。    首部字段名:字段值  如Content-Type:text/html 字段值对应单个HTTP首部字段可以有多个值,如:Keep-Alive:timeout=15,max=100 HTTP首部字段重复时为规范,由浏览器决定。 4种HTTP首部字段类型: HTTP首部字段根据实际用途被分为以下4种类型。 通用首部字段:请求报文和响应报文两方都会使用的首部。 请求首部字段:从客户端向服务端发送请求报文时使用的首部。补充了附加信息、客户端信息

Python爬虫入门之三urllib库的基本使用

半腔热情 提交于 2020-03-25 20:54:35
前言 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。在Python中有很多库可以用来抓取网页,我们先学习urllib。 注:此博客开发环境为python3 urlopen 我们先来段代码: # urllib_urlopen.py # 导入urllib.request import urllib.request # 向指定的url发送请求,并返回服务器响应的类文件对象 response = urllib.request.urlopen("http://www.baidu.com") # 类文件对象支持 文件对象的操作方法,如read()方法读取文件全部内容,返回字符串 html = response.read() # 打印字符串 print(html) 执行写的python代码,将打印结果: python3 urllib_urlopen.py ** 实际上,如果我们在浏览器上打开百度主页, 右键选择“查看源代码”,你会发现,跟我们刚才打印出来的是一模一样。也就是说,上面的4行代码就已经帮我们把百度的首页的全部代码爬了下来。** 一个基本的url请求对应的python代码真的非常简单。 Request 在我们第一个例子里,urlopen()的参数就是一个url地址;但是如果需要执行更复杂的操作,比如增加HTTP报头,必须创建一个 Request