response

java通过http请求调用接口 (get ,post,上传文件)

假如想象 提交于 2020-04-07 15:16:48
package com.xx.util ; import com.alibaba.fastjson.JSON ; import com.hcr.aurora.vo.ParamVo1 ; import org.apache.http.Consts ; import org.apache.http.HttpEntity ; import org.apache.http.NameValuePair ; import org.apache.http.client.ClientProtocolException ; import org.apache.http.client.config.RequestConfig ; import org.apache.http.client.entity.UrlEncodedFormEntity ; import org.apache.http.client.methods.CloseableHttpResponse ; import org.apache.http.client.methods.HttpGet ; import org.apache.http.client.methods.HttpPost ; import org.apache.http.entity.ContentType ; import org.apache.http

Servlet和HTTP

纵饮孤独 提交于 2020-04-07 14:16:15
Servlet和HTTP Servlet的体系结构 Servlet---->GenericServlet---->HttpServlet GenericServlet:将Servlet接口中的其他方法默认空实现,只将service方法实现,通过extends个可以继承该类并复写service方法 HttpServlet:继承HttpServlet方法,复写doGet和doPost方法,实质是对http协议的封装,简化操作; 推荐使用这种方法 Servlet的相关配置 urlPattern:Servlet的访问路径 一个Servlet可以定义多个访问路径 路径的定义规则: /path /path1/path2 *.path HTTP 概念:Hyper Text Transfer Protocol 超文本传输协议 特点 基于TCP/IP的高级协议 基于请求--响应模型,请求和响应一一对应 无状态协议:每次请求之间相互独立 请求消息数据格式 request 请求行 请求方式(常用两种): GET:请求参数在url后,url长度有限制,不安全 POST:请求参数在请求体中,url长度没有限制 请求方式 url 请求协议/版本 get /page.html HTTP/1.1 请求头(键值对) Host:请求地址 User-Agent:浏览器版本 Accept:接受文件类型 Referer

使用Python的Scrapy框架编写web爬虫的简单示例

三世轮回 提交于 2020-04-07 04:53:55
在这个教材中,我们假定你已经安装了Scrapy。假如你没有安装,你可以参考这个 安装指南 。 我们将会用 开放目录项目(dmoz) 作为我们例子去抓取。 这个教材将会带你走过下面这几个方面: 创造一个新的Scrapy项目 定义您将提取的Item 编写一个 蜘蛛 去抓取网站并提取 Items 。 编写一个 Item Pipeline 用来存储提出出来的Items Scrapy由 Python 写成。假如你刚刚接触Python这门语言,你可能想要了解这门语言起,怎么最好的利用这门语言。假如你已经熟悉其它类似的语言,想要快速地学习Python,我们推荐 这种深入方式学习Python 。假如你是新手,想从开始使用Python学习,可以尝试去看看非程序员 Python资源列表 。 创造一个项目 在你要抓取之前,首先要建立一个新的Scrapy项目。然后进去你的存放代码目录,执行如下命令。 scrapy startproject tutorial 它将会创建如下的向导目录: 复制代码 代码如下: tutorial/ scrapy.cfg tutorial/ __init__.py items.py pipelines.py settings.py spiders/ __init__.py ... 这是一些基本信息: scrapy.cfg: 项目的配置文件。 tutorial/:

python操作redis和MySQL数据库

℡╲_俬逩灬. 提交于 2020-04-06 22:23:04
  python操作redis和MySQL数据库需要先分别导入模块:redis、pymysql   如果这个库没有导入成功,则需要安装,用pip3 install pymysql,redis的库类似;两个数据库的基本命令我们也必须知道,数据库 的命令最好是在Linux里执行一下,看是否能够执行!以此来保证该代码不会出错,添加表或数据之后要记得相应的删除...   要用python链接数据库,就必须要更改数据库的配置文件。   更改mysql的配置文件 mysqld.cnf ,输入命令:cd /etc/mysql/mysql.conf.d 进入该文件夹     再输入命令: sudo vim mysqld.cnf ,修改成下图的样子之后,保存退出!          再输入命令: sudo service mysql restart 重启mysql服务   更改redis的配置文件 redis.conf ,输入命令: cd /etc/redis sudo vim redis.conf sudo service redis restart   配置号python和数据库之后就可以用python来操作数据库了! python操作MySQL数据库   用pycharm连接MySQL数据库的命令:conn = pymysql.connect(host='127.0.0.1', port

dubbo消费者调用流程

有些话、适合烂在心里 提交于 2020-04-06 19:44:41
dubbo相关 说明 (官方): 在RPC中,Protocol是核心层,也就是只要有Protocol + Invoker + Exporter就可以完成非透明的RPC调用,然后在Invoker的主过程上Filter拦截点。 图中的Consumer和Provider是抽象概念,只是想让看图者更直观的了解哪些类分属于客户端与服务器端,不用Client和Server的原因是Dubbo在很多场景下都使用Provider, Consumer, Registry, Monitor划分逻辑拓普节点,保持统一概念。 而Cluster是外围概念,所以Cluster的目的是将多个Invoker伪装成一个Invoker,这样其它人只要关注Protocol层Invoker即可,加上Cluster或者去掉Cluster对其它层都不会造成影响,因为只有一个提供者时,是不需要Cluster的。 Proxy层封装了所有接口的透明化代理,而在其它层都以Invoker为中心,只有到了暴露给用户使用时,才用Proxy将Invoker转成接口,或将接口实现转成Invoker,也就是去掉Proxy层RPC是可以Run的,只是不那么透明,不那么看起来像调本地服务一样调远程服务。 而Remoting实现是Dubbo协议的实现,如果你选择RMI协议,整个Remoting都不会用上

15-Response

自古美人都是妖i 提交于 2020-04-06 17:51:23
今日内容 1. HTTP协议:响应消息 2. Response对象 3. ServletContext对象 HTTP协议: 1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 2. 响应消息:服务器端发送给客户端的数据 * 数据格式: 1. 响应行 1. 组成:协议/版本 响应状态码 状态码描述 2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。 1. 状态码都是3位数字 2. 分类: 1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码 2. 2xx:成功。代表:200 3. 3xx:重定向。代表:302(重定向),304(访问缓存) 4. 4xx:客户端错误。 * 代表: * 404(请求路径没有对应的资源) * 405:请求方式没有对应的doXxx方法 5. 5xx:服务器端错误。代表:500(服务器内部出现异常) ​ 2. 响应头: 1. 格式:头名称: 值 2. 常见的响应头: 1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式 2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据 * 值: * in-line:默认值,在当前页面内打开 * attachment;filename=xxx

坑爹的文件名问题

两盒软妹~` 提交于 2020-04-06 17:43:37
由于以前导出文件名都是一个数字串,一直没有在意这个名称的问题.才有现在的懵逼 修改前: /** * 设置导出头部信息 (xls 格式 ) * * @param response * @param fileName */ public static void setResponseForXls ( HttpServletResponse response , String fileName ) throws UnsupportedEncodingException { response . setCharacterEncoding ( "utf-8" ); response . setContentType ( "multipart/form-data" ); response . setHeader ( "Content-Disposition" , "attachment;fileName=" + fileName + ".xls" ); } 修改后: public static void setResponseForXls ( HttpServletResponse response , String fileName ) throws UnsupportedEncodingException { response . setCharacterEncoding ( "utf-8

Java操作Solr之SolrJ

帅比萌擦擦* 提交于 2020-04-06 07:04:15
添加SolrJ的jar包   solrj是访问Solr服务的java客户端,提供索引和搜索的请求方法,SolrJ通常在嵌入在业务系统中,通过SolrJ的API接口操作Solr服务, 1 <dependency> 2 <groupId>org.apache.solr</groupId> 3 <artifactId>solr-solrj</artifactId> 4 <version>4.10.4</version> 5 </dependency> 6 <dependency> 7 <groupId>commons-logging</groupId> 8 <artifactId>commons-logging</artifactId> 9 <version>1.2</version> 10 </dependency> 创建索引   使用SolrJ创建索引,通过调用SolrJ提供的API请求Solr服务,Document通过SolrInputDocument进行构建。 1 // 创建索引 2 public static void createIndex() throws Exception { 3 SolrServer solrServer = new HttpSolrServer("http://192.168.50.50:8080/solr/collection1"); 4

Crawlab尝试

老子叫甜甜 提交于 2020-04-06 03:42:26
官方: https://docs.crawlab.cn/ https://github.com/crawlab-team/crawlab Crawlab配置 Windows 安装 docker: https://www.docker.com/products/docker-desktop 安装python环境: 我选 Pycharm+Anaconda 安装docker-compose: pip install docker-compose 创建项目文件:docker-compose.yml 启动: docker-compose up -d 测试服务: http://localhost:8080/ docker-compose.yml version: '3.3' services: master: image: tikazyq/crawlab:latest container_name: master environment: # CRAWLAB_API_ADDRESS: "https://<your_api_ip>:<your_api_port>" # backend API address 后端 API 地址. 适用于 https 或者源码部署 CRAWLAB_SERVER_MASTER: "Y" # whether to be master node 是否为主节点,主节点为

scrapy专题(二):下载中间件

拟墨画扇 提交于 2020-04-05 18:41:53
下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量、底层的系统。 1.激活Downloader Middleware 要激活下载器中间件组件,将其加入到 DOWNLOADER_MIDDLEWARES 设置中。 该设置是一个字典(dict),键为中间件类的路径,值为其中间件的顺序(order)。像下面这样 DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.CustomDownloaderMiddleware': 543, } DOWNLOADER_MIDDLEWARES 设置会与Scrapy定义的 DOWNLOADER_MIDDLEWARES_BASE 设置合并(但不是覆盖), 而后根据顺序(order)进行排序,最后得到启用中间件的有序列表: 第一个中间件是最靠近引擎的,最后一个中间件是最靠近下载器的。 关于如何分配中间件的顺序settings里面的Scrapy默认BASE设置 ,而后根据你想要放置中间件的位置选择一个值。 由于每个中间件执行不同的动作,你的中间件可能会依赖于之前(或者之后)执行的中间件,因此顺序是很重要的。 如果你想禁止内置的(在 DOWNLOADER_MIDDLEWARES_BASE 中设置并默认启用的)中间件,