http请求

requests第二弹

心不动则不痛 提交于 2020-01-13 16:35:55
引入 有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/env python # -*- coding:utf-8 -*- import requests if __name__ == "__main__": #张三人人网个人信息页面的url url = 'http://www.renren.com/289676607/profile' #伪装UA headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', } #发送请求,获取响应对象 response = requests.get(url=url,headers=headers) #将响应内容写入文件 with open('./renren.html','w',encoding='utf-8') as fp: fp.write(response.text) 一.基于requests模块的cookie操作 - 结果发现,写入到文件中的数据

SpringMVC-RestFul风格

不羁岁月 提交于 2020-01-13 16:12:07
RestFul 风格 概念 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 功能 资源:互联网所有的事物都可以被抽象为资源 资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。 分别对应 添加、 删除、修改、查询。 传统方式操作资源 :通过不同的参数来实现不同的效果!方法单一,post 和 get http://127.0.0.1/item/queryItem.action?id=1 查询,GET http://127.0.0.1/item/saveItem.action 新增,POST http://127.0.0.1/item/updateItem.action 更新,POST http://127.0.0.1/item/deleteItem.action?id=1 删除,GET或POST 使用RESTful操作资源 : 可以通过不同的请求方式来实现不同的效果!如下:请求地址一样,但是功能可以不同! http://127.0.0.1/item/1 查询,GET http://127.0.0.1/item 新增,POST http://127.0.0.1/item 更新,PUT http://127.0.0.1/item/1 删除,DELETE

Go Web 编程之 响应

空扰寡人 提交于 2020-01-13 15:24:36
概述 上一篇文章中,我们介绍了请求的结构与处理。本文将详细介绍如何响应客户端的请求。其实在前面几篇文章中,我们已经使用过响应的功能——通过 http.ResponseWriter 发送字符串给客户端。 但是这种方式仅限于发送字符串。本文我们将介绍如何定制响应的参数。 ResponseWriter 接口 如果你看了我前面几篇文章,应该对处理器和处理器函数都非常熟悉了。处理器函数即拥有以下签名的函数: func (w http.ResponseWriter, r *http.Request) 这里的 ResponseWriter 其实是定义在 net/http 包中的一个接口: // src/net/http/ type ReponseWriter interface { Header() Header Write([]byte) (int, error) WriteHeader(statusCode int) } 我们响应客户端请求都是通过该接口的 3 个方法进行的。例如之前 fmt.Fprintln(w, "Hello World") 其实底层调用了 Write 方法。 收到请求后,多路复用器会自动创建一个 http.response 对象,它实现了 http.ResponseWriter 接口,然后将该对象和请求对象作为参数传给处理器。那为什么请求对象使用的时结构指针 *http

HTTP关键信息简单阐述

依然范特西╮ 提交于 2020-01-13 13:35:35
HTTP的工作过程 当我们请求一个超链接时,HTTP就开始工作了,客户端先发送一个请求到服务器,请求内容包括:协议版本号、请求地址、请求方式、请求头和请求参数;服务器收到请求后做相应的处理,并将响应数据返回到客户端,响应内容包括:协议版本号、状态码和响应数据。前端根据响应数据做相应的处理,就是最终我们看到的内容。这些过程是HTTP自动完成的,我们只是输入或点击请求地址,然后查看前端给我们展示的内容。更多关于HTTP协议的介绍请参考:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html 请求类型 GET 查询 POST 创建 patch 补丁,编辑的时候需要用到 delete 删除 HTTP响应状态 1XX信息,服务器收到请求,需要请求者继续执行操作 2XX成功,操作被成功接收并处理 3XX重定向,需要进一步的操作以完成请求 4XX服务端错误,请求包含语法错误或无法完成请求 5XX服务器错误,服务器在处理请求的过程中发生了错误 状态码取值范围从100-599,实际上并没有用到这么多 常见的有 200:服务器成功处理了请求; 404:未找到资源; 500:内部服务器错误; 503:服务器目前无法为请求提供服务; 301-资源(网页等)被永久转移到其他URL 302:请求的URL已临时转移; 304

微服务网关 Spring Cloud Gateway

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-13 06:04:00
#什么是网关 假设你现在要做一个电商应用,前端是移动端的APP,后端是各种微服务。那你可能某个页面需要调用多个服务的数据来展示。如果没有网关,你的系统看起来就是这个样子的: 而如果加上了网关,你的系统就会变成这个样子: #Spring Cloud Gateway Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。 #####相关概念 Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。 Predicate(断言):这是一个 Java 8 的 Predicate。输入类型是一个 ServerWebExchange。我们可以使用它来匹配来自 HTTP 请求的任何内容,例如 headers 或参数。 Filter(过滤器):这是org

枯燥而又非常重要的东西:HTTP协议

女生的网名这么多〃 提交于 2020-01-13 06:02:52
文章目录 HTTP概述: 一、HTTP协议简介 二、HTTP协议概述 三、HTTP工作原理 四、HTTP请求方法 五、HTTP状态码 首部的分类: HTTP之URL URI和URL的区别 HTTP之请求消息Request Http请求消息结构 POST请求例子,使用Charles抓取的request: HTTP之响应消息Response http响应消息格式 GET和POST请求的区别 我们看看GET和POST的区别 HTTP概述: 一、HTTP协议简介 超文本传输协议(英文:HyperTextTransferProtocol.缩写:HTTP)是一种用于分布式,协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础,HTTP的发展是由蒂姆.伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(W3C)和互联网工程任务组(IETE)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的RFC2616,定义了HTTP协议中现今广泛使用的一个版本–HTTP1.1 2014年12月,互联网工程任务组(IETE)的Hypertext Transfer Protocol Bis (httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,与2015年2月17日被批准。HTTP/2标准于2015年5月以RFC

HttpWatch简单功能字段含义介绍(二)

孤人 提交于 2020-01-13 01:13:33
一、缓存清空   浏览器默认支持缓存,在录制之前没有清空缓存,有可能某次访问直接从浏览器缓存中读取,而不会真的将请求发送给服务器,这样就不会录制到任何数据包。   这时需要清空缓存。 二、Overview 1、界面展示 2、字段含义介绍   (1)Display URL :表示请求的地址   (2)Started At :表示发送请求的时刻,为本地时间   (3)Connection Reuse : 表示与服务器建立了连接,显示本地链接地址和端口号。   (3)HTTP Request : 表示通过浏览器发出的请求。   (4)HTTP Response :服务器返回的头和内容信息。 三、Time Chart 1、界面展示   主要以直观的方式——线条,显示各部分耗时情况 2、字段含义介绍   (1)Blocked(阻塞):阻塞时间包括任何预处理时间(比如缓存查找)和等待网络连接的时间。浏览器显示一定数量的并发网络连接,如果已经达到极限后则后续请求需排队。   (2)DNS Lookup(DNS寻址):DNS解析一个主机名得到一个IP地址所耗费的时   (3)Connect(连接):连接是创建一个TCP连接到Web服务器(或代理)所需要的时间。   (4)Send(发送请求):是指发送HTTP请求消息到服务器所需时间。   (5)Wait(等待服务器响应时间)

Spring Cloud Gateway服务网关

旧巷老猫 提交于 2020-01-12 23:54:40
原文:https://www.cnblogs.com/ityouknow/p/10141740.html Spring 官方最终还是按捺不住推出了自己的网关组件:Spring Cloud Gateway ,相比之前我们使用的 Zuul(1.x) 它有哪些优势呢?Zuul(1.x) 基于 Servlet,使用阻塞 API,它不支持任何长连接,如 WebSockets,Spring Cloud Gateway 使用非阻塞 API,支持 WebSockets,支持限流等新特性。 Spring Cloud Gateway Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。 相关概念: Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。

spring cloud:服务网关 Spring Cloud GateWay 入门

最后都变了- 提交于 2020-01-12 23:40:40
Spring 官方最终还是按捺不住推出了自己的网关组件:Spring Cloud Gateway ,相比之前我们使用的 Zuul(1.x) 它有哪些优势呢?Zuul(1.x) 基于 Servlet,使用阻塞 API,它不支持任何长连接,如 WebSockets,Spring Cloud Gateway 使用非阻塞 API,支持 WebSockets,支持限流等新特性。 Spring Cloud Gateway Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 Spring Cloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/指标,和限流。 相关概念: Route(路由):这是网关的基本构建块。它由一个 ID,一个目标 URI,一组断言和一组过滤器定义。如果断言为真,则路由匹配。 Predicate(断言):这是一个 Java 8 的 Predicate。输入类型是一个

python requests使用

时光毁灭记忆、已成空白 提交于 2020-01-12 06:51:51
参考:http://cn.python-requests.org/zh_CN/latest/ 1.使用requests发送请求: >>> r = requests.get('https://github.com/timeline.json')#get请求 >>> r = requests.post("http://httpbin.org/post")#post请求>>> r = requests.put("http://httpbin.org/put") >>> r = requests.delete("http://httpbin.org/delete") >>> r = requests.head("http://httpbin.org/get") >>> r = requests.options("http://httpbin.org/get") 2.为url传递参数 如果你是手工构建URL,那么数据会以键/值 对的形式置于URL中,跟在一个问号的后面。例如, httpbin.org/get?key=val 。 Requests允许你使用 params 关键字参数,以一个字典来提供这些参数。举例来说,如果你想传递 key1=value1 和 key2=value2 到 httpbin.org/get ,那么你可以使用如下代码: >>> payload = {'key1':