精华内容
下载资源
问答
  • 请求体
    千次阅读
    2021-03-10 06:13:51

    1.maven引入依赖

    org.apache.httpcomponents

    httpclient

    4.0.2

    2.请求示例

    package utils;

    import org.apache.http.HttpEntity;

    import org.apache.http.HttpResponse;

    import org.apache.http.NameValuePair;

    import org.apache.http.client.HttpClient;

    import org.apache.http.client.entity.UrlEncodedFormEntity;

    import org.apache.http.client.methods.HttpPost;

    import org.apache.http.impl.client.DefaultHttpClient;

    import org.apache.http.message.BasicNameValuePair;

    import org.apache.http.util.EntityUtils;

    import java.io.IOException;

    import java.io.UnsupportedEncodingException;

    import java.net.URI;

    import java.net.URISyntaxException;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Map;

    import java.util.Set;

    /**

    * http工具类

    */

    public class HttpUtils {

    public static String doPost(String url, Map paramsMap) {

    HttpClient httpClient = new DefaultHttpClient();

    HttpPost postRequest = new HttpPost();

    List params = new ArrayList<>();

    Set paramsNames = paramsMap.keySet();

    for (String paramsName : paramsNames) {

    NameValuePair param = new BasicNameValuePair(paramsName, String.valueOf(paramsMap.get(paramsName)));

    params.add(param);

    }

    try {

    HttpEntity httpEntity = new UrlEncodedFormEntity(params, "UTF-8");

    postRequest.setURI(new URI(url));

    postRequest.setEntity(httpEntity);

    HttpResponse response = httpClient.execute(postRequest);

    if (response.getStatusLine().getStatusCode() == 200) {

    HttpEntity resEntity = response.getEntity();

    return EntityUtils.toString(resEntity, "utf-8");

    } else {

    HttpEntity resEntity = response.getEntity();

    String message = EntityUtils.toString(resEntity, "utf-8");

    System.out.println(message);

    }

    } catch (URISyntaxException | IOException e) {

    System.out.println("请求异常");

    e.printStackTrace();

    }

    return null;

    }

    }

    UrlEncodedFormEntity用来设置请求的参数,参数类型为 List

    BasicNameValuePair类的内部实现非常简单,并不是使用的map存储,而是直接在类中声明了两个属性,一个name,一个value

    更多相关内容
  • HTTP请求行、请求头、请求体详解

    千次阅读 2022-01-16 20:01:44
    Request Body:请求体 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,最常的...

    HTTP请求报文解剖
    HTTP Request :HTTP请求
    Request Line:请求行
    Header:请求头
    Request Body:请求体

    HTTP请求报文由3部分组成(请求行+请求头+请求体):

    下面是一个实际的请求报文:
    在这里插入图片描述

    ①是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。
    ②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL
    ③是协议名称及版本号。
    ④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。
    ⑤是报文体,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1&param2=value2”的方式传递请求参数。

    HTTP响应报文解剖
    HTTP的响应报文也由三部分组成(响应行+响应头+响应体):

    以下是一个实际的HTTP响应报文:
    image.png

    ①报文协议及版本;
    ②状态码及状态描述;
    ③响应报文头,也是由多个属性组成;
    ④响应报文体,即我们真正要的“干货”。
    响应状态码
    和请求报文相比,响应报文多了一个“响应状态码”,它以“清晰明确”的语言告诉客户端本次请求的处理结果。
    HTTP的响应状态码由5段组成:

    1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急…
    2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
    3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
    4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
    5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。
    200 OK

    你最希望看到的,即处理成功!

    展开全文
  • Get请求是把参数放在URL中(无请求体),会将数据暴露在请求地址上,而Post请求是通过请求体requestBody来传递参数的 Get和Post是HTTP协议中的两种发送请求方法 那么HTTP又是什么呢? HTTP是基于TCP/IP中关于...

    最直观的区别:

    Get请求是把参数放在URL中(无请求体),会将数据暴露在请求地址上,而Post请求是通过请求体requestBody来传递参数的

    Get和Post是HTTP协议中的两种发送请求方法

    那么HTTP又是什么呢?

    HTTP是基于TCP/IP中关于数据如何在万维网中如何通信的协议;

    所以说Get与Post能做的事情都是一样的,底层就是TCP/IP

    要区分Get与Post还需要从它们的底层开始

    TCP就像汽车一样,可以用来传输数据,但是路上都是一样的汽车就会混乱,比如说救护车和货车,救护车被装货的车堵到后面肯定得急死,所以说:我们要区分这些车——>Http就诞生了,他就相当于交通规则,里面有好几个等级,分为:GET,POST,PUT,DELETE..;

    GET与POST还一个重要的区别

    对于GET:浏览器会将http的header与data一并发出去,服务器直接响应200(并返回数据);

    对于POST:浏览器先发送Header,当服务器响应了100之后,浏览器再发送data,最后服务器才响应200(返回数据)——>所以说它分了两步

    请求体与请求体简单理解

    请求头header:一般用来存放一些cookie,token信息;

    请求体Requestbody:一般用来存储post的参数和参数数据;

    Referer :表示这个请求是从哪个URL过来的,假如你通过google搜索出一个商家的广告页面,你对这个广告页面感兴趣,鼠标一点发送一个请求报文到商家的网站,这个请求报文的Referer报文头属性值就是http://www.google.com;

    Accept :请求报文可通过一个“Accept”报文头属性告诉服务端 客户端接受什么类型的响应

    例子:如下报文头相当于告诉服务端,俺客户端能够接受的响应类型仅为纯文本数据啊,你丫别发其它什么图片啊,视频啊过来,那样我会歇菜的~~~: 

    Accept属性的值可以为一个或多个MIME类型的值;

    什么是Mime

    场景:在JSP中contentType属性用于指定JSP页面响应的MIME类型

    使用MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准,使用MIME类型可以设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开;

    在JSP页面中,contentType属性设置为:contentType=“text/html;charset=GBK”;
     

    未完待续

    展开全文
  • 请求行、请求头、请求体解析

    千次阅读 2021-04-14 17:23:47
    一个完整的HTTP请求包括:请求行、请求头、请求体 这里面最常用到的就是状态码,很多时候都是通过状态码来判断,如(列举几个最常见的): 200–表明请求被成功的完成,所请求的资源发送回客户端 304–自从上次请i...

    一个完整的HTTP请求包括:请求行、请求头、请求体

    这里面最常用到的就是状态码,很多时候都是通过状态码来判断,如(列举几个最常见的):

    200–表明请求被成功的完成,所请求的资源发送回客户端 304–自从上次请i去后,请求的网页没有修改,请客户端使用本地缓存
    400–客户端请求有错误(可能是安全等模块拦截了) 401–请求未经授权 403–禁止访问(比如未登录时的禁止访问)
    404–资源找不到 500–服务器内部错误 503–服务不可用

    再列举一下大致范围内状态码的意义

    1xx——指示信息,表示请求已接收,继续处理 2xx——成功,表示请求已被成功接收、理解、接受
    3xx——重定向,要完成请求必须进行更进一步的 操作 4xx——客户端错误,请求有语法错误或请求无法实现
    5xx——服务器端错误,服务器未能实现合法的请求

    常用的请求头部(部分):

    Accept: 接收类型,表示浏览器支持的MIME类型 (对标服务端返回的Content-Type)
    Accept-Encoding:浏览器支持的压缩类型,如gzip等,超出类型不能接收
    Content-Type:客户端发送出去实体内容的类型
    Cache-Control: 指定请求和响应遵循的缓存机制,如no-cache
    If-Modified-Since:对应服务端的Last-Modified,用来匹配看文件是否变动,只能精确到1s之内,http1.0中
    Expires:缓存控制,在这个时间内不会请求,直接使用缓存,http1.0,而且是服务端时间
    Max-age:代表资源在本地缓存多少秒,有效时间内不会请求,而是使用缓存,http1.1中
    If-None-Match:对应服务端的ETag,用来匹配文件内容是否改变(非常精确),http1.1中
    Cookie: 有cookie并且同域访问时会自动带上
    Connection: 当浏览器与服务器通信时对于长连接如何进行处理,如keep-alive
    Host:请求的服务器URL
    Origin:最初的请求是从哪里发起的(只会精确到端口),Origin比Referer更尊重隐私
    Referer:该页面的来源URL(适用于所有类型的请求,会精确到详细页面地址,csrf拦截常用到这个字段)
    User-Agent:用户客户端的一些必要信息,如UA头部等

    常用的响应头部(部分):

    Access-Control-Allow-Headers: 服务器端允许的请求Headers
    Access-Control-Allow-Methods: 服务器端允许的请求方法
    Access-Control-Allow-Origin: 服务器端允许的请求Origin头部(譬如为*)
    Content-Type:服务端返回的实体内容的类型
    Date:数据从服务器发送的时间
    Cache-Control:告诉浏览器或其他客户,什么环境可以安全的缓存文档
    Last-Modified:请求资源的最后修改时间
    Expires:应该在什么时候认为文档已经过期,从而不再缓存它
    Max-age:客户端的本地资源应该缓存多少秒,开启了Cache-Control后有效
    ETag:请求变量的实体标签的当前值
    Set-Cookie:设置和页面关联的cookie,服务器通过这个头部把cookie传给客户端
    Keep-Alive:如果客户端有keep-alive,服务端也会有响应(如timeout=38)
    Server:服务器的一些相关信息

    如下图是对某请求的http报文结构的简要分析:
    在这里插入图片描述
    Request Method: GET, POST, PUT,DELETE, OPTIONS, HEAD
    接下来就是其他报文头,常见的请求报头有: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Authorization, Cookie, User-Agent等。

    展开全文
  • 关于post的请求体类型

    千次阅读 2021-04-06 21:47:32
    文章目录Http请求一、body的类型二、使用步骤1.引入库2.读入数据总结 ...header显而易见是请求头 ...body是指请求体中的数据 前端发送请求最常用的是get请求还有post请求 get请求只能传query参数,query参数
  • 本文简单介绍了如何在使用 RestTemplate 时设置请求头以及请求体,并提供了 Demo。
  • HttpServletRequest对象代表客户端的请求,当客户端通过http协议请求访问服务器的时候,...request如果是post才有请求体,get则没有请求体,直接跟在?后面,用&隔开。getHeader(String name)获取单个请求头name...
  • http get 请求可以有请求体

    千次阅读 2021-11-18 22:02:56
    http get 请求可以有请求体吗 可以 rfc 规范并没有规定 get 请求不可以有请求体 不过习惯上, get 请求都认为是对请求 uri 的数据传输, 并且有的网络库不支持 get 传输请求体, 例如 okhttp
  • 抓包工具抓取数据 第一部分 :请求行 第二部分:请求头 第三部分:空行 第四部分:请求体(body)
  • nginx请求体读取

    千次阅读 2020-12-22 13:03:03
    上节说到nginx核心本身不会主动读取请求体,这个工作是交给请求处理阶段的模块来做,但是nginx核心提供了ngx_http_read_client_request_body()接口来读取请求体,另外还提供了一个丢弃请求体的接口-ngx_...
  • GET请求也有请求体

    千次阅读 2020-12-16 19:51:41
    get请求也是可以带请求体的,可以被servlet中的request.getInputStream()获取。 在Fiddle4中可以看到这条请求,是带有请求体的 # 请求内容raw GET http://localhost:8080/user/login.do HTTP/1.1 User-Agent: ...
  • Nginx处理请求体那点事

    千次阅读 2022-05-04 10:33:58
     proxy_request_buffering # 如果开启了 nginx会在内存开辟一块空间来缓存客户发来的请求  语法:proxy_request_buffering on | off  默认值:proxy_request_buffering on  上下文:http、server、location ...
  • (2)请求方法为POST,参数存储在请求体上,可以认为传送的数据大小不限。 二、查看响应信息 (1)响应头信息 (2)响应体信息 注:Response里展示的信息为服务器返回的原始信息;Preview里展示的是经浏览器格式化...
  • 今天同事遇到一个问题同一个保存接口操作,第一个可以保存成功(请求体很小),第二个提示“500 Internal Server Error”(请求体比较大)。 二. 初步排查 刚开始以为是接口本身的问题,如是去接口所在服务器查看日志...
  • 概念:Hyper Text Transfer Protocol 超文本传输协议 传输协议:定义了,客户端和服务器端通信时,发送数据的格式 特点: 基于TCP/IP的高级协议 ...请求方式 请求url 请求协议/版本 GET /logi
  • 获取请求头中的值: 获取请求头中的Accept @GetMapping("/getHead") @ResponseBody public void getHead(@...获取请求体中的值: @RequestMapping(value = "/test",method = RequestMethod.POST) public Per
  • 谷歌浏览器查看http请求,请求头请求体响应数据和状态
  • request 获取请求体数据

    千次阅读 2021-03-28 00:03:55
    request 获取请求体数据 doGet, 如果servlet 支持 HTTP GET 请求 doPost, 针对 HTTP POST 请求 **步骤1:在web目录下新建一个regist.html <!DOCTYPE html> <html lang="en"> <head> <meta ...
  • HTTP GET请求使用了请求体遇到的坑

    千次阅读 2021-01-28 16:45:18
    响应内容: 以及此时后端显示的错误: 结论就是: HTTP协议本身支持GET请求携带请求体 JAVA后端支持GET请求携带请求体 WEB浏览器不支持GET请求携带请求体 解决方案一:就是将GET请求改成POST请求 解决方案二:GET...
  • Request Body:请求体 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: 其中,①,②和③属于请求行;④属于请求头;⑤属于报文体 ① 是请求方法,HTTP/1.1 定义的请求方法有8种:...
  • Request获取请求体

    千次阅读 2020-05-28 16:18:29
    获取请求体数据: 请求体:只有POST请求方式,才请求体,在请求体中封装了POST请求的请求参数; 步骤: 获取流对象 BufferedReader getReader() :获取字符输入流,只能操作字符数据 Servlet Inputstream get ...
  • HTTP常用请求头与请求体实例

    千次阅读 2020-07-16 16:58:12
    HTTP概要 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是... ... ... ...HTTP请求与响应 ...1.get无参请求与响应: ...get无参请求(cookie有删减): GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive.
  • Request获取请求体数据的常用方法 import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; ...
  • 从HttpServletRequest获取POST请求体

    千次阅读 2021-06-02 14:17:15
    getInputStream()、getReader() 上面两种方法获取的是Http请求包的包,因为GET方式请求一般不包含包.所以上面两种方法一般用于POST请求获取参数.
  • 没错,就用请求体发送。 老规矩,先上代码 这里我们介绍下,我们新引入了一个pydantic库。 pydantic —— 使用Python类型提示来进行数据验证和设置管理的库。 从上图从,我们先创建了一个数据模型Student,...
  • 1.通过request获取请求行 获取客户端的请求方式:String getMethod(); 获取请求资源: String getRequestURI()------获取所有资源地址 StringBuffer getRequestRUL()----获取网络资源地址 STring ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 448,672
精华内容 179,468
关键字:

请求体

友情链接: mantis_pci.rar