-
response
2017-02-22 15:40:41第5天 (上)服务器处理请求的流程: ... 服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应1.response 状态码:200表示成功、302表示重定向、404表示客户端错误、500表示服务器服务器处理请求的流程:
服务器每次收到请求,都会为这个请求开辟一个新的线程
服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体
服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应1.response状态码、响应头
状态码:200表示成功、302表示重定向、404表示客户端错误、500表示服务器端错误sendError(int v)发送错误状态码,例如404、500
sendError(int v,String msg) 例如resp.sendError(404,”就不给你看”)
setStatus(int v)发送成功的状态码,可以用来发送302响应头:Content-Type、Refresh、Location等等
setHeader(String name,String value)适用于单值的响应头
resp.setHeader(“aaa”,”ASDF”);
addHeader(String name,String value)适用于多值的响应头
resp.setHeader(“aaa”,”ASDF”);
resp.addHeader(“aaa”, “BJKF”);
setIntHeader(String name,int value)适用于单值的int类型的响应头
resp.setIntHeader(“Content-Length”, 888);
addIntHeader(String name,int value)适用于多值的int类型的响应头
setDateHeader(String name,long value)适用于单值的毫秒类型的响应头
resp.setDateHeader(“expires”,1000*60*60*24);
addDateHeader(String name,long value)适用于多值的毫秒类型的响应头发送302,设置Location头,完成重定向! 定时刷新,设置Refresh头 禁用浏览器缓存:Cache-Control、pragma、expires
2.response之重定向
BServlet.java
@WebServlet("/Bservlet") public class Bservlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); response.setHeader("Location", "/jsp/CServlet"); response.setStatus(302); } }
CServlet.java
@WebServlet("/CServlet") public class CServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } }
发送请求:http://localhost:8080/jsp/Bservlet
结果: 客户端地址栏变成:http://localhost:8080/jsp/CServlet
页面显示:Served at: /jsp3.response之定时刷新(可以理解成定时重定向)
DServlet.javaprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /** * 下面是用来发送响应体! */ PrintWriter out=resp.getWriter(); out.print("欢迎登陆成功!,5秒自动跳转到主页。您看到的是一定是乱码。"); /** * 设置名为Refresh的响应头 */ resp.setHeader("Refresh","5;URL=/jsp/EServlet"); }
EServlet.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); response.getWriter().print("还是乱码lll"); }
发送请求:http://localhost:8080/jsp/DServlet
结果: 先显示Servlet处理的响应内容,
5秒钟之后地址栏变成http://localhost:8080/jsp/EServlet4.response之禁止缓存
Cache-Control pragma expiresresponse.setHeader("Cache-Control", "no-cache"); response.setHeader("pragma", "no-cache"); response.setDateHeader("expires",-1);//过期时间,马上过期
<meta>标签可以代替响应头 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
5.response响应体
response虽然有两种流,getOutputStream()和getWriter(),但是不能同时使用1.PrintWriter,用来向客户端发送字符数据!需要设置编码 PrintWriter out=response.getWriter(); 2.ServletOutputStream,用来向客户端发送字节数据。 ServletOutputStream st=response.getOutputStream();
案例: 1.1使用PrintWriter发送字符数据 1.2使用ServletOutputStream发送字节数据(图片)
response.setHeader("Cache-Control", "no-cache"); response.setHeader("pragma", "no-cache"); response.setDateHeader("expires",-1);//过期时间,马上过期 String s="Hello outputStream中文";//字符 byte[] bytes=s.getBytes(); //转成字节 response.getOutputStream().write(bytes);//字节流是万能的 请求内容:http://localhost:8080/jsp/FServlet 结果:Hello outputStream中文
打印出照片
String path="F:/A.png"; FileInputStream in=new FileInputStream(path); byte[] bytes=IOUtils.toByteArray(in);//读取输入流内容的字节到字节数组中 response.getOutputStream().write(bytes);
发送请求:http://localhost:8080/jsp/GServlet
结果:在页面打印出照片6.重定向
设置302,设置Location
另外一种方法是sendRedirect(“/项目名/cservlet”); -
Could not get any response postman报错 但是浏览器可以访问
2019-04-12 18:31:42答案在最后一张图片 案例分析 把postman报错的信息复制再这里,你去翻译一下 Could not get any response There was an error connecting to http://118.xxx.xxx.10:11134/api-customer/...答案在最后一张图片
案例分析
把postman报错的信息复制再这里,你去翻译一下
Could not get any response There was an error connecting to http://118.xxx.xxx.10:11134/api-customer/terminal/user/information. Why this might have happened: The server couldn't send a response: Ensure that the backend is working properly Self-signed SSL certificates are being blocked: Fix this by turning off 'SSL certificate verification' in Settings > General Proxy configured incorrectly Ensure that proxy is configured correctly in Settings > Proxy Request timeout: Change request timeout in Settings > General
老夫用网易有道翻译如下
没有得到任何回应 有一个错误连接到http://118.xxx.xxx.10:11134/api-customer/terminal/user/information。 原因: 服务器无法发送响应: 确保后端正常工作 自签名SSL证书被阻塞: 通过在设置> General中关闭“SSL证书验证”来修复这个问题 代理配置不正确 确保在设置>代理中正确配置了代理 请求超时: 更改>设置中的请求超时
此时按照教程和百度结果是叫你改设置
如果成功了,那就好了,如果不成功,那么是因为
原因1:头部传入了接口不需要的参数,并且body也传入了参数,如图
原因2:高频错误(输入格式不小心)
以下是热心网友遇到的问题,我在这里显示的展示出来,方便有相同问题的老铁少走弯路
不要偷懒,可能就是空格,大小写,甚至某个字母错了,赶紧重新添加上去,因为只有这些情况,如果还是没有解决,那么告诉我,留言,我去找postman,和它大战300回合
-
xpath Elements和Response不一致,该以谁为准?
2018-10-16 17:17:08有些时候,xpath明明写对了,Elements 下 xpath工具也能正确提取元素,但程序中结果却不一致,这个时候看,可以考虑查看Response响应体,竟然发现标签属性跟Elements竟然不一致。 按照Response响应体重新写xpath后...有些时候,xpath明明写对了,xpath工具也能正确提取元素,但程序运行结果却不一致,为何?
原因:程序不具备html,js,css三大解释器,而浏览器具备,xpath工具提取的是浏览器渲染后的结果,
此时,需检查Response,按Response重新编写xpath。
-
response.sendRedirect()的用法
2018-11-01 19:36:16response和request一样都是jsp内置对象,request是获取用户的请求,response处理用户请求。sendRedirect()函数的作用是重定向网页,向浏览器发送一个特殊的Header,然后由浏览器来做重定向,转到指定的页面。下面我...sendRedirect()
response和request一样都是jsp内置对象,request是获取用户的请求,response处理用户请求。sendRedirect()函数的作用是重定向网页,向浏览器发送一个特殊的Header,然后由浏览器来做重定向,转到指定的页面。下面我将创建四个页面,首先是sex.jsp,有一个下拉列表和提交按钮确定,选择“男”,就跳转到male.jsp,选择“女”就跳转到female.jsp,中间通过sex_action.jsp进行重定向
<!-- sex.jsp --> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Sex Select's page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <form action="<%=basePath%>c03/sex_action.jsp" method="post"> <select name="sex"> <option>男</option> <option>女</option> </select> <button type="submit">提交</button> </form> </body> </html>
<!-- sex_action.jsp --> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'sex_action.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> <body> <% request.setCharacterEncoding("UTF-8"); String sex = request.getParameter("sex"); out.println(sex); if("男".equals(sex)) { response.sendRedirect("male.jsp"); return; } else if("女".equals(sex)) { response.sendRedirect("female.jsp"); return; } %> </body> </html>
-
response.text 与 response.content
2018-04-16 11:30:42在某些情况下来说,response.text 与 response.content 都是来获取response中的数据信息,效果看起来差不多。那么response.text 和 response.content 到底有哪些差别 ? 什么情况下该用 response.text 什么情况下该... -
使用ResponseEntity处理API返回
2019-10-29 23:38:20最近在做Google AMP mail的时候遇到了一个问题,在调用/unsub(退订)接口的时候需要向google client返回特定的ResponseHeader。但是项目使用的是Springboot 2.x,通常使用@RestController修饰API层,无法做到动态的... -
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin'
2016-12-14 18:57:22在使用ajax向tomcat部署的rest服务(使用nginx作为反向代理服务器)请求数据时返回了Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on ... -
Http响应Response详解
2018-12-06 10:35:331. HttpServletResponse概述: 在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两...service方法中的response的类型是ServletResponse,而doGet/doPost方法的response的类型是HttpSer... -
response响应
2018-03-10 11:39:15在service()中可以使用request来获取请求数据,还可以使用response向客户端响应,response有响应流。request和response是一次性的,即每次请求都要创建新的。 response是类型是javax.servlet.... -
response.getLastHeader,response.getFirstHeader
2017-02-14 09:39:48http头信息有个请求头和响应头,response.getLastHeader最后一条头信息指的什么意思,response.getFirstHeader第一条头信息又是值什么意思.还有response.getHeaders()response.getAllHeaders()都帮忙解释一下吧 -
ResponseEntity返回数据、状态、头部信息
2018-12-12 01:51:30ResponseEntity :标识整个http相应:状态码、头部信息、响应体内容(spring) ... @ResponseStatus:加在方法上、返回自定义http状态码(spring) ...ResponseEntity事例: import com.baidu.item.po... -
使用spring ResponseEntity处理http响应
2018-07-21 11:31:26使用spring ResponseEntity处理http响应 简介 ...本文我们学习如何通过ResponseEntity...ResponseEntity ResponseEntity标识整个http相应:状态码、头部信息以及相应体内容。因此我们可以使用其对http响应实现完... -
Response重定向详情
2020-07-10 16:12:33直接来,ResponseDemo1代码,get请求到post请求,重定向到ResponseDemo2 我的虚拟目录为 ResponseDemo1代码,302是重定向状态码,Http状态码大全 package com.lingaolu.response; import javax.servlet.... -
response详解
2016-09-22 17:13:361 response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response... -
response响应头设置总结
2016-12-07 20:19:34response -
js ajax请求成功,response显示 “failed to load response data”
2019-09-20 21:00:35js ajax请求成功,response显示 “failed to load response data” #原因 服务端返回的数据量过大,导致数据无法展示; #通过"open in new tab "来查看返回的数据 注意: 如果该请求时Get请求,那没问题; 如果... -
response重定向
2018-06-27 10:29:25public class Bservlet extends HttpServlet { /** *重定向 */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ... -
response响应流程,response重定向流程,302
2018-08-15 21:22:01请求响应流程图 1. response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。...response对象是用来对客户端进行响应的,这说明在service()方法中使用r... -
response.text 和response.content的区别
2018-09-05 20:27:17response.text 和response.content的区别 response.text 类型:str 解码类型:根据HTTP头部对响应的编码做出有根据的推测,推测的文本编码 如何修改编码方式:response.encoding="gbk" response.... -
Response.Flush和Response.BufferOutput
2015-11-27 15:26:36Response.Flush和Response.BufferOutput 首先Response.Buffer属性现在已经过时,它存在的唯一目的仅仅是为了兼容asp。你应该使用Response.BufferOutput属性来替代它。 Response.Flush方法用来将缓冲区的数据立即... -
python response.text 和response.content的区别
2018-10-10 15:22:39response.text 和response.content的区别 1.response.text - 类型:str - 解码类型: 根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码 - 如何修改编码方式:response.encoding=”gbk” 2. response.... -
HttpServletResponse response详解
2018-08-03 13:16:461 response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response... -
Jmeter 正则表达式提取Response Headers,Response Body里的值
2019-08-02 17:17:16实践过程中遇到需要提取Response Headers,Response Body里的值 1. Response Headers 例. 提取Location中/status之后的id值 正则表达式参考:${location} 2. Response Body 例. 提取resourceLocation的值... -
response.setCharacterEncoding和response.setContentType区别
2019-01-31 13:50:33response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); response.setContentType作用是让浏览器用utf-8来解析返回的数据 response.setCharacter... -
docker: Error response from daemon: Bad response from Docker engine.
2018-03-01 11:21:57docker: Error response from daemon: Bad response from Docker engine.在执行命令:docker run -it ubuntu bash时,docker 下载完成了新的更新,这个安装更新,docker 引擎会退出运行,这个正在执行的命令就可能会... -
Response详解
2015-10-25 23:28:551.1. Response概述 1.1.1. Response概述 Servlet中应该如何向用户输出数据呢?在doGet和doPost方法的参数中,HttpServletRequest代表的是http请求,而HttServletResponse代表的是http响应。想要获取请求中的信息... -
Flask response 响应对象和make_response()方法
2020-04-18 15:42:09Flask视图函数返回的不仅仅是字符串,而是会对返回值进行一些列的封装,变成一个response响应对象 app.route("/hello") def hello(): # status 200,404,301 # content-type http headers # content-type = text...