response

Gloang Swagger

孤人 提交于 2020-02-07 23:09:21
功能 自动化生产接口文档 安装 # 安装swaggo get -u github.com/swaggo/swag/cmd/swag # 安装 gin-swagger go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/gin-swagger/swaggerFiles 编写API注释 例1-新增 // @Summary 新增文章标签 // @Produce json // @Param name query string true "Name" // @Param state query int false "State" // @Param created_by query string false "CreatedBy" // @Success 200 {object} app.Response // @Success 500 {object} app.Response // @Router /api/tags [post] func AddTag(c *gin.Context) { ... } 例2-编辑 // @Summary 编辑文章标签 // @Produce json // @Param id path int true "ID" // @Param name query string

fetch详解

随声附和 提交于 2020-02-07 19:22:12
window对象提供了一个fetch方法,用于实现基于promise的http请求。它取代了最早的XMLHttpRequest实现的ajax请求。 1. 基本内容 1. 基本语法 fetch方法返回一个promise对象。 const promise = fetch(url[, options]); url --发起请求的路径 options --可选设置。可以设置method, headers, body等,method默认是"GET"。 2. options配置对象 1. 如果不设置options, method默认是GET方法。 fetch(url) // 相当于 fetch(url, { method: 'GET' }) 其传参通过url传参 fetch(url+ 'a=1&b=2') 2. 当请求方法为POST/PUT/DELETE等方法时,需要传请求体body和对应的headers const user = {name: "lyra"}; fetch(url, { method: 'POST', body: {// 请求体 user: JSON.stringify(user) }, headers: {// 请求头 Content-Type: "application/json;charset=utf-8" } }) 其中请求体 body 可以接受的参数类型有:

爬虫高性能相关

你离开我真会死。 提交于 2020-02-07 16:30:48
前言 之前讨论过python中多线程和多进程的不同。 由于我们使用的python解释器是Cpython,并不是线程安全的,所以python解释器为了解决这个问题,引入了GIL全局解释器锁。这导致了在同一个进程(一个python解释器下)并不能真正的实现多线程的并行执行,在某一确定的时刻永远只有一个线程在运行。 由此我们可以讨论: 1.当一个程序是I/O密集型时,是该采用多线程还是应该采用多进程? 我们知道当程序进入I/O(阻塞态)时,操作系统会自动剥夺我们程序的CPU使用权。如果我们程序采用多进程,即使给我们的程序分配另外的cpu,操作系统一样会剥夺其对CPU的使用权,这就导致了虽然我们消耗了很多的资源,但几乎对程序的性能没有提升。所以我们应该采用多线程。 2.当一个程序是计算密集型时,是该采用多线程还是应该采用多进程? 计算任务总是由cpu执行,如果我们的计算密集型程序采用多线程,虽然各个计算任务好像在并发执行,但是单位时间内cpu的计算次数是几乎固定的。这就导致了,性能没有额外的提升还额外多了线程之间的切换所带来的开销。 一、同步、异步、回调机制 1.同步调用 import requests def parse_page(res): print('解析 %s' %(len(res))) def get_page(url): print('下载 %s' %url)

java爬虫.HttpClient.请求参数

假装没事ソ 提交于 2020-02-07 15:47:27
HttpClient.请求参数 有时候因为网络,或者目标服务器的原因,请求需要更长的时间才能完成,我们需要自定义相关时间 package cn . csdn . crawlar . test ; import org . apache . http . client . config . RequestConfig ; import org . apache . http . client . methods . CloseableHttpResponse ; import org . apache . http . client . methods . HttpGet ; import org . apache . http . impl . client . CloseableHttpClient ; import org . apache . http . impl . client . HttpClients ; import org . apache . http . util . EntityUtils ; import java . io . IOException ; public class HttpConfigTest { public static void main ( String [ ] args ) { //创建HttpClient对象

.net core3.1 webapi + vue + element-ui upload组件实现文件上传

余生颓废 提交于 2020-02-07 14:44:11
首先,先看我个人的项目结构。 这个webapi项目是专门作为图片上传的业务处理,而其中分为两个控制器:单图片上传和多图片上传。在接下来的内容主要还是针对单文件上传,对于多文件的上传,我暂且尚未研究成功。 其中pictureoptions类,由于我把关于图片上传相关的配置项(保存路径、限制的文件类型和大小)写在了配置文件中,所以接下来会通过依赖注入的方式,注入到这个类中 接下来,正式开工 第一步,配置文件的设置 "PictureOptions": { "FileTypes": ".gif,.jpg,.jpeg,.png,.bmp,.GIF,.JPG,.JPEG,.PNG,.BMP", "MaxSize": 10485760, "ImageBaseUrl": "G:\\dotnet\\imageServer\\evaluate" } 然后在项目根目录下新建PictureOptions类 1 public class PictureOptions 2 { 3 /// <summary> 4 /// 允许的文件类型 5 /// </summary> 6 public string FileTypes { get; set; } 7 /// <summary> 8 /// 最大文件大小 9 /// </summary> 10 public int MaxSize { get; set; }

vue中使用axios

耗尽温柔 提交于 2020-02-07 13:25:41
axios 基于http客户端的promise,面向浏览器和nodejs 特色 浏览器端发起XMLHttpRequests请求 node端发起http请求 支持Promise API 监听请求和返回 转化请求和返回 取消请求 自动转化json数据 客户端支持抵御 安装 使用npm: npm install axios --save 为了解决post默认使用的是application/json请求数据 ,导致请求参数无法传递到后台,所以还需要安装一个插件QS,此插件将application/json转换为application/x-www-from-urlencoded npm install qs --save 一个命令全部解决 npm install --save axios vue-axios qs 使用 修改原型链 首先在 main.js 中引入 axios import Axiso from 'axiso' 这时候如果在其它的组件中,是无法使用 axios 命令的。但如果将 axios 改写为 Vue 的原型属性,就能解决这个问题 Vue.prototype.$axios= Axios 配置好了之后就可以全局使用了 post请求转换 import QS from 'qs' if(config.method=='post'){ config.data=QS.stringify

day39 javaWeb阶段——Cookie&Session&Jsp原理(Cookie的特点和作用,session的特点,session与Cookie的区别,jsp实现登录验证校验)

好久不见. 提交于 2020-02-07 12:04:12
今日内容 会话技术 1. Cookie 2. Session JSP:入门学习 今日源码: 链接: https://pan.baidu.com/s/1Zx0ideJ6sco6nqm3Qu73lQ 提取码:ekdo 会话技术 会话:一次会话中包含多次请求和响应。 * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 1. 客户端会话技术:Cookie 2. 服务器端会话技术:Session Cookie: 1. 概念:客户端会话技术,将数据保存到客户端 2. 快速入门: 使用步骤: 创建Cookie对象,绑定数据 * new Cookie(String name, String value) 发送Cookie对象 * response.addCookie(Cookie cookie) 示例代码: package cn . wbslz . cookie ; import javax . servlet . ServletException ; import javax . servlet . annotation . WebServlet ; import javax . servlet . http . Cookie ; import javax . servlet . http .

使用IFTTT制作比特币提醒

杀马特。学长 韩版系。学妹 提交于 2020-02-07 12:01:08
开头介绍   最近对python爬虫和数据分析挺有兴趣的, 看到一个小项目, 利用python调取比特币接口, 然后利用IFTTT设置实时更新和阈值警告, 比较简单适合新手, 自己写了下. 项目开始   首先我们理清思路, 要实现在手机app上接受实时更新和阈值警告, 首先就是要调取比特币接口, 拿到数据, 然后利用IFTTT接口发送到手机app上, 得到实时更新, 阈值警告则是利用拿到的数据与自己设定的阈值相比, 然后再利用IFTTT接口发送到手机上, 所以第一步我们还是利用python获取数据接口.   这里 https://api.coinmarketcap.com/v1/ticker/bitcoin/ 就有比特币及其他相关币种的接口数据, 关于调用接口这里使用requess库.   首先新建一个bitcoin.py项目 1234567 import requestsBITCOIN_API_URL = 'https://api.coinmarketcap.com/v1/ticker/bitcoin/'response = requests.get(BITCOIN_API_URL)response_json = response.json()print(response_json) 目录执行python3 bitcoin.py, 然后在控制台即可看到输出的数据. 配置IFTTT

gRPC简介和实践

北城以北 提交于 2020-02-07 11:38:09
简介 gRPC是Google主导的一个高性能,跨语言的RPC(远程过程调用)框架。官网: https://grpc.io/ 支持多种常见的流行编程语言,如C++ Java Node.js PHP Python等等。 其实从本质上来看到gRPC其实是基于使用protobuf做为数据传输格式,借助HTTP2协议通信做的一个RPC框架,只要任何语言实现了gRPC的规范即可以实现跨平台调用。类比Restful Api使用json作为数据传输格式,over HTTP1.1进行通信,大致也就这么回事,没想象中那么复杂。 跨语言和跨平台很大功劳在于Google推出的这个protobuf数据传输格式。我们可以把它看做和json xml一类作用的东西。 protobuf数据格式被编译后形成二进制数据,相对json等传输格式,解析效率高,压缩体积小,并且能够明确传递数据的数据类型等等。 1.什么是protobuf? 详细信息可以参考官方文档与介绍: https://developers.google.com/protocol-buffers/ 2.实践 采用PHP作为client, Golang作为Server端模拟一个用户登录过程。(PHP目前只支持作为客户端的角色实现。我们知道由于PHP语言特性本身不支持内置提供强大的HTTP服务,借助于fasgic与nginx或者apache等工作

ajax实现文档导出及下载

只谈情不闲聊 提交于 2020-02-07 06:50:38
做导出一直遇到个问题就是不能用ajax实现一步导出文档,即导出加下载。今天突然想到可以分开来做就上网搜了下,发现一篇比较不错的文章( http://www.cnblogs.com/zj0208/p/5961181.html ),先摘录下来。 问题说明:Ajax是无法实现文件传输的,本文只是模拟了Ajax不刷新页面就可以请求并返回数据的效果。实质上还是通过提交form表单来返回文件流的输出。 分步实现逻辑: ajax请求服务器,访问数据库,根据查询到的数据生成一个数据文件,返回前台一个json对象(可放置生成成功标记,文件路径等信息)。 ajax success回调函数部分,根据返回的json对象,调用手写的js下载文件的方法,实现页面无刷新下载文件。 贴上部分代码供参考: js代码: 1. js写一个动态创建并提交form表单的方法,依赖于 jQuery 插件。 // 文件下载 jQuery.download = function (url, method, filedir, filename) { jQuery('<form action="' + url + '" method="' + (method || 'post') + '">' + // action请求路径及推送方法 '<input type="text" name="filedir" value="' +