response

WCF REST 工作总结(二)

夙愿已清 提交于 2020-02-27 20:50:15
上一篇 我们搭建了WCF REST 的服务 平且通过 三种方式发送get请求 实现了获取json 没看过的朋友可以先去看下---- REST 工作总结一 今天主要写下 POST等其他方式 发送请求 以及 流方式 文件的上传与下载 一.Post 提交数据 先来想下 POST和Get 的不同 Get 方式 我们直接通过 url 来传递参数 先来看下我们的 创建方法吧 [WebInvoke(UriTemplate = "Tasks/Add", Method = "POST", RequestFormat = WebMessageFormat.Json)] void Create(PocoTask pocoTask); 我们需要接受一个实体类 格式为json格式 这就再次出现上文的问题 我们的客户端没有实体类 没法把实体类序列化为json 难道要自己拼接json么? 当然不用。那简直太痛苦了。 这里给大家推荐 Json.Net 这里有两个类 可以帮我们完成 单个实体的转换 以及集合实体的转换 分别是 JObject 和 JArray 我们只需声明这两个类后 .toString 就可得到他的json格式了 很方便吧~ 看代码 这里完全可以不用dynamic的 像注释那样的写法就行 这样即使服务器不支持.net4.0 也可以使用的 知道了如何构建POST 提交的数据 就开始实现POST提交吧~

scrapy shell

断了今生、忘了曾经 提交于 2020-02-27 17:45:50
scrapy shell 说明 scrapy shell [url|file] Interactive console for scraping the given url or file. Use ./file.html syntax or full path for local file. 常用变量(对象和函数) request 最近一次下载对应的Request对象 response 最近一次下载对应的response对象 fetch(req-or-url) 该函数用于下载页面,可传入一个Request对象或url字符串,调用后会更新变量request和response view(response) 该函数用于在浏览器中显示response中的页面 来源: CSDN 作者: Z_sam 链接: https://blog.csdn.net/u010553139/article/details/104374336

JAVAWEB中对Response理解

荒凉一梦 提交于 2020-02-27 09:40:21
1 Response 1.1 Response的作用 代表Http响应的对象.用来封装服务器将要发送给浏览器的响应信息. 1.2 response继承结构 **ServletResponse接口 – 提供了一个response对象应该具有的功能 HttpServletResponse接口, 继承了ServletResponse, 并添加了很多和Http协议相关的方法** 1.3 response请求转发、重定向 (1)请求转发 a) 一次请求,一次响应(request对象是同一个) b) 地址栏地址不会发生变化 c) 转发只能在同一个WEB应用内部的资源之间进行跳转 (2)重定向 a) 两次请求, 两次响应(request对象不是同一个) b) 地址栏地址会发生变化 来源: CSDN 作者: μ微醺 链接: https://blog.csdn.net/weixin_46410658/article/details/104526046

Java Servlet图片上传至指定文件夹并显示图片

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-27 07:55:54
在学习Servlet过程中,针对图片上传做了一个Demo,实现的功能是:在a页面上传图片,点击提交后,将图片保存到服务器指定路径(D:/image);跳转到b页面,b页面读取展示绝对路径(D:/image)的图片。主要步骤如下: 步骤一:上传页面uploadphoto.jsp   需要注意两个问题:   1.form 的 method必须是post的,get不能上传文件, 还需要加上 enctype="multipart/form-data" 表示提交的数据是二进制文件。   2.需要提供 type="file" 的字段进行上传 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>upload page</title> </head> <body > <form action=

vue 解决axios 跨域问题

微笑、不失礼 提交于 2020-02-27 07:09:52
闲着没事,假期敲vue 请求数据,总结下vue跨越问题 第一种.服务器服务器不支持跨域请求 1. 当跨域无法请求的时候我们可以修改工程下config文件夹下的index.js中的dev:{}部分。 添加下面的代码: proxyTable: { '/api': { target: 'http://api.douban.com/v2', changeOrigin: true, pathRewrite: { '^/api': '' } } }, 将target设置为我们需要访问的域名。 2.然后在 main.js 中设置全局属性: Vue.prototype.HOST = '/api' 3.我们就可以在全局使用这个域名了,如下: var url = this.HOST + '/movie/in_theaters' this.$http.get(url).then(res => { this.movieList = res.data.subjects; },res => { console.info('调用失败'); }); 第二种: 服务器端支持跨域 String data = JsonUtil.toJsonNonNull(pubXtzdBos); OutputStream out = response.getOutputStream(); out.write(data.getBytes

Servlet的层次结构

久未见 提交于 2020-02-27 06:07:59
Servlet的层次结构 Servlet–>GenericServlet–>HttpServlet HTTP请求有很多种类型,常用的有四种 GET 读取 POST 保存 PUT 修改 DELETE 删除 GenerServlet实现Servlet接口,同时为他的子类屏蔽了不常用的方法,子类只需要重写Service方法即可。 HttpServlet继承GenerServlet,根据请求类型进行分发处理,GET进入doGet方法,POST进入doPost方法 开发者自定义的Servlet类只需要继承HttpServlet即可,重写doGet和doPost package com . southwind . servlet ; import javax . servlet . annotation . WebServlet ; import javax . servlet . http . HttpServletRequest ; import javax . servlet . http . HttpServletResponse ; @WebServlet ( "/hellos" ) public class HelloServlet implements MyHttpServlet { @Override public void doGet ( HttpServletRequest

Android框架-Volley(三)

独自空忆成欢 提交于 2020-02-27 04:17:01
经过前面两篇文章的学习,我们已经掌握了Volley各种Request的使用方法,包括StringRequest、JsonRequest、ImageRequest等。其中StringRequest用于请求一条普通的文本数据,JsonRequest(JsonObjectRequest、JsonArrayRequest)用于请求一条JSON格式的数据,ImageRequest则是用于请求网络上的一张图片。 可是Volley提供给我们的Request类型就只有这么多,而我们都知道,在网络上传输的数据通常有两种格式,JSON和XML,那么如果想要请求一条XML格式的数据该怎么办呢?其实很简单,Volley提供了非常强的扩展机制,使得我们可以很轻松地定制出任意类型的Request,这也就是本篇文章的主题了。 1. 自定义XMLRequest 下面我们准备自定义一个XMLRequest,用于请求一条XML格式的数据。那么该从哪里开始入手呢?额,好像是有些无从下手。遇到这种情况,我们应该去参考一下Volley的源码,看一看StringRequest是怎么实现的,然后就可以模仿着写出XMLRequest了。首先看下StringRequest的源码,如下所示: /** * A canned request for retrieving the response body at a given URL

一口一口吃掉Volley(二)

穿精又带淫゛_ 提交于 2020-02-27 04:14:03
欢迎访问我的 个人博客 转发请注明出处:http://www.wensibo.top/2017/02/17/一口一口吃掉Volley(二)/ 相信看了 第一篇教程 之后,你应该会对Volley有一个初步的了解了吧,那接下来就继续学习如何使用Volley进行开发吧! 配置Gradle 使用如下命令导入Volley库: compile 'com.mcxiaoke.volley:library:1.0.19' 如果你还是使用Eclipse进行开发的话,可以下载 volley的jar包 导入工程。 添加联网许可 在AndroidManifest.xml文件中添加联网的请求 <uses-permission android:name="android.permission.INTERNET"/> 使用StringRequest 如果你需要通过网络访问的资源属于String字符串的资源,那么使用StringRequest就最为简单了,只需按照如下步骤就行了。 ① 获取一个RequestQueue RequestQueue mQueue = Volley.newRequestQueue(this); ② 构造一个StringRequest对象 StringRequest stringRequest=new StringRequest("http://www.wensibo.top" , new

Feign调用报错:failed and no fallback available

女生的网名这么多〃 提交于 2020-02-26 15:58:57
timed-out and no fallback 这个错误基本是出现在Hystrix熔断器,熔断器的作用是判断该服务能不能通,如果通了就不管了,调用在指定时间内超时时,就会通过熔断器进行错误返回。 一般设置如下配置的其中一个即可: 1、把时间设长 这里设置5秒 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000 2、把超时发生异常属性关闭 hystrix.command.default.execution.timeout.enabled=false 3、禁用feign的hystrix feign.hystrix.enabled: false failed and no fallback available: 而通过上面设置只是针对熔断器的错误关闭,并不能解决根本问题,比如Feign客户端调用远程服务时,默认为8秒超时时间,如果在规定时间内没有返回,同样会跳转到熔断器进行处理。即使关闭了熔断器的错误,但是总的错误处理还会是有这个问题出现。 那么要解决根本问题,就要从请求超时时间入手,因为有些服务可能存在调用时间长的问题,所以直接配置: ribbon.ReadTimeout=60000 ribbon.ConnectTimeout=60000 这些才是真正解决请求超时的问题

JavaWeb Response

眉间皱痕 提交于 2020-02-26 13:54:29
# 今日内容 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