response

.NET BS端和CS端相互压缩发送接收byte对象数据方法

只谈情不闲聊 提交于 2020-01-08 16:22:27
本文是总结实际项目经验,代码不少是学习别人整合的,效果稳定可靠,有很大参考价值;但是也有不全面的地方,朋友们拿到可以按照自己需要修改。 场景是项目需要在客户端控制台软件和 .NET MVC 站点间互相传递数据,数据的量比较大,需要对数据进行转化为 byte 数据,再压缩后发送,接收方需要接收 byte 数据,再解压缩,还原成数据。 本文既有 Web 端发送接收数据,也有 CS 端发送接收数据,内容比较全面。 一、 object 和 byte 互转 object 和 byte 互转是基础步骤,实现过程是很简单的,需要用到 MemoryStream 、 IFormatter 等类。 1 、导入命名空间 using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; 2 、 object 转 byte 方法 public static byte[] ToBytes(object obj) { if (obj == null) return null; byte[] buff; using (MemoryStream ms = new MemoryStream()) {

使用fetch进行数据请求时报json错误

我与影子孤独终老i 提交于 2020-01-08 15:24:02
使用fetch进行数据请求返回response对象,response.json报错。原因是response中含有特殊字符。 fetch(url).then(response => response.json()) .then(data => console.log(data)) .catch(e => console.log("Oops, error", e)) 取消response.json()调用,使用response.text()返回请求数据的字符串,对特殊字符进行转义替换处理后,再进行json对象化传入请求成功的回调函数中。transSpecialChar是对字符串处理的函数 interface Body { readonly body: ReadableStream<Uint8Array> | null; readonly bodyUsed: boolean; arrayBuffer(): Promise<ArrayBuffer>; blob(): Promise<Blob>; formData(): Promise<FormData>; json(): Promise<any>; text(): Promise<string>; } response.text().then((text) => { const json = JSON.parse(this

4.HTTP入门

可紊 提交于 2020-01-08 12:58:27
什么是http协议 查看http协议的工具 http协议内容 Http请求 请求行 http协议版本 请求资源 请求方式 GET方式提交 POST方式提交 请求头 3.3 实体内容 3.4 HttpServletRequest对象 Demo: HTTP 响应 响应行 http协议版本 状态码: 服务器处理请求的结果(状态) 状态描述 常见的响应头 HttpServletResponse对象 页面跳转-使用Location头 定时刷新-使用Refresh 定义下载 项目中的编码问题 什么是http协议 http协议:对浏览器客户端 和 服务器端 之间数据传输的格式规范 查看http协议的工具 使用火狐的firebug插件(右键->firebug->网络) 使用谷歌的“审查元素” 使用系统自带的telnet工具(远程访问工具) telnet localhost 8080 访问tomcat服务器 ctrl+] 回车 可以看到回显 输入请求内容 GET /day09/hello HTTP/1.1Host: localhost:8080 * 回车,即可查看到服务器响应信息。 http协议内容 请求(浏览器-》服务器)GET /day09/hello HTTP/1.1Host: localhost:8080User-Agent: Mozilla/5.0 (Windows NT 6.1;

AngularJS #http

我怕爱的太早我们不能终老 提交于 2020-01-08 12:15:40
$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。 使用格式: / 简单的 GET 请求,可以改为 POST $ http ( { method : 'GET' , url : '/someUrl' } ) . then ( function successCallback ( response ) { // 请求成功执行代码 } , function errorCallback ( response ) { // 请求失败执行代码 } ) ; $http服务的设置对象: method 字符串 表示发送的请求类型 get post jsonp等等 url 字符串 绝对或者相对的URL,请求的目标 params 字符串或对象 会被转化成查询字符串加到URL后面,如果不是字符串会被JSON序列化 data 字符串或者对象 这个对象包含了被当做消息体发送给服务器的数据,一般在POST请求中使用,并且从angular1.3开始可以在POST请求里发送二进制数据 如var blob = new Blob({name:’张三’}); $http({method:’get’,url:’/‘,data:blob}); headers 对象 在我们做POST跨域和后台配合的时候就用到了headers,其代表随请求发送的HTTP头字符串 cache 布尔或缓存对象

spider_01

ぃ、小莉子 提交于 2020-01-08 10:46:20
import urllib.request import urllib.parse response = urllib.request.urlopen('http://httpbin.org/get') # 向网站发起请求并获取响应对象,read()得到结果为 bytes 数据类型,decode('utf-8')指定解析编码格式decode() 转为string数据类型 html = response.read().decode('utf-8') print(html) request = urllib.request.Request( url = 'http://httpbin.org/get', headers = {'User-Agent':'Mozilla/5.0'} ) response = urllib.request.urlopen(request) html = response.read().decode() print(html) query_string = {'wd':'美女'} result = urllib.parse.urlencode(query_string) print(result) def get_url(word): # url = 'https://www.so.com/s?{}' # params = urllib.parse

Spring AOP实现原理-动态代理

荒凉一梦 提交于 2020-01-08 04:26:18
目录 代理模式 静态代理 动态代理 代理模式 我们知道,Spring AOP的主要作用就是不通过修改源代码的方式、将非核心功能代码织入来实现对方法的增强。那么Spring AOP的底层如何实现对方法的增强?实现的关键在于使用了代理模式 代理模式的作用就是为其它对象提供一种代理,以控制对这个对象的访问,用于解决在直接访问对象时带来的各种问题。 代理主要分为两种方式:静态代理和动态代理 静态代理 静态代理主要通过将目标类与代理类实现同一个接口,让代理类持有真实类对象,然后在代理类方法中调用真实类方法,在调用真实类方法的前后添加我们所需要的功能扩展代码来达到增强的目的 示例代码: /** * 代理类与目标类的共同接口 */ public interface Subject { void request(); void response(); } /** * 目标类 */ public class RealSubject implements Subject { @Override public void request() { System.out.println("执行目标对象的request方法......"); } @Override public void response() { System.out.println("执行目标对象的response方法......"); }

Yii2 使用Curl

徘徊边缘 提交于 2020-01-08 04:09:28
composer安装curl 命令行切入到你的项目目录执行 composer require --prefer-dist linslin/yii2-curl "*" 等待安装即可 安装完之后curl的位置 项目根目录/vendor/linslin 有linslin就是安装成功了 Yii2 使用Curl 1 <?php 2 namespace server\api; 3 4 use yii; 5 use yii\helpers\Json; 6 use linslin\yii2\curl\Curl; 7 use server\utils\Jwt; 8 /** 9 * API基础类 10 */ 11 class BaseApi 12 { 13 const API_POST = 'POST';//POST 请求 14 const API_GET = 'GET';//GET 请求 15 const API_HEAD = 'HEAD';// HEAD 请求 16 const API_PUT = 'PUT';// PUT 请求 17 const API_DELETE = 'DELETE'; // DELETE 请求 18 19 20 /** 21 * 调用脚本接口 22 * @param $url 请求地址 23 * @param $params 接口参数 24 * @param $type

python 爬虫 基本库使用urllib之urlopen(一)

我的梦境 提交于 2020-01-08 01:58:10
urllib是python内置的请求库。它主要包含四个模块: request :是最基本的HTTP请求模块,可以用来模拟发送请求。 error:异常处理模块,如果请求出现错误,可以捕获异常,然后进行其他操作,保证程序不会意外终止。 parse:工具模块,提供了很多URL处理方法,比如拆分、解析、合并等。 robotparser:主要用来识别网站的robots.txt文件,然后判断哪些网站可以爬。 使用urllib的request模块中的方法urlopen抓取python官网,这样我们想要的东西就可以提取出来了 import urllib.request response = urllib.request.urlopen('https://www.python.org') print(type(response)) #类型 print(response.read().decode('utf-8')) 来源: https://www.cnblogs.com/u-damowang1/p/12164500.html

Flask框架(六)

泪湿孤枕 提交于 2020-01-07 20:53:33
Flask框架(六) message -设置:flash('aaa') -取值:get_flashed_message() -假设在a页面操作出错,跳转到b页面,在b页面显示a页面的错误信息 1 如果要用flash就必须设置app.secret_key = 'asdfasdf' 2 特点:存了,你可以在任意一次请求中获取,但是一旦取了一次,就没有了。这里的一次指的是在同一个路径下请求一次 3 我们可以使用 flash('普通信息',category="info"),通过category对信息做分类 4get_flashed_messages(with_categories=True,category_filter=("error",)),设置with_categories以键值对的形式获取 设置category_filter=("error",)进行分类信息的过滤 from flask import Flask,flash,get_flashed_messages app = Flask(__name__) app.secret_key = 'asdfasdf' @app.route('/index1') def index(): #(category="message", message)) flash('超时错误',category="error") #设置信息

Djangorestfromwork作业1

独自空忆成欢 提交于 2020-01-07 20:26:01
作业 简单过过请求模块的源码流程,建立一个视图类,完成一项渲染模块与解析模块的全局局部配置 url配置 urlpatterns = [ url(r'^v2/cars/$',views.CarAPIView.as_view()), url(r'^v2/cars/(?P<pk>\d+)/$',views.CarAPIView.as_view()), ] settings配置 REST_FRAMEWORK = { # 解析模块: 'DEFAULT_PARSER_CLASSES': [ 'rest_framework.parsers.JSONParser', 'rest_framework.parsers.FormParser', # urlencoded数据格式 'rest_framework.parsers.MultiPartParser' # form-data数据格式 ], # 如果把 其中某一个参数注释掉之后,则会出现客户端发过来的参数解析不了 # { # "detail": "<api.views.CarAPIView object at 0x000000000BC29E48> - GET - 不支持请求中的媒体类型 “application/json”。" # } # 渲染模块 'DEFAULT_RENDERER_CLASSES': [ 'rest_framework