网络原理 - HTTP / HTTPS(4)——构造http请求

这篇具有很好参考价值的文章主要介绍了网络原理 - HTTP / HTTPS(4)——构造http请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、postman 的下载安装以及简单介绍

1、下载安装

2、postman的介绍

二、通过 Java socket 构造 HTTP 请求


        构造http请求的方式有两种:(1)通过代码构造(有一点难度)       (2)通过第三方工具构造(非常容易)。

        下面介绍第三方工具构造http请求,这个工具就是:postman。下面介绍postman的下载安装以及简单介绍

一、postman 的下载安装以及简单介绍

1、下载安装

        因为我没有挂梯子,官网加载不出来(官网地址:Postman API Platform),大家就自行在网上找资源吧,下载完后,我们按照指引,往下next。具体安装细节,可以参考这位大佬文章:postman官网下载安装登录测试详细教程-CSDN博客

        第一次安装,需要进行登录,我们注册一个账户。如图:

http请求软件,http,网络协议,网络

http请求软件,http,网络协议,网络

        登录完成后的界面,如图:

http请求软件,http,网络协议,网络

2、postman的介绍

        点击Workspaces,这里指的是工作空间,我们点击创建新的工作空间,如图:

http请求软件,http,网络协议,网络

        选择一些选项,如图:

http请求软件,http,网络协议,网络

        创建完后,点击这里的+号,如图:

http请求软件,http,网络协议,网络

        就可以构造http请求了,如图:

http请求软件,http,网络协议,网络

        这里每个标签页,都是一个构造http请求的配置页面,上面的send按钮,是发送请求到目标服务器的按钮。

构造请求的一些功能选项

        url,可以在这里写入,如图:

http请求软件,http,网络协议,网络

        query string可以在这里添加,如图:

http请求软件,http,网络协议,网络

        添加 a = 11,b = 22,如图:

http请求软件,http,网络协议,网络

        报头(header),如图:

http请求软件,http,网络协议,网络

        正文(body),如图:

http请求软件,http,网络协议,网络

        然后我们点击send(发送HTTP请求)试试,下面这里会得到一个响应的结果,如图:

http请求软件,http,网络协议,网络

        对了,postman还可以生成对应语言的代码,如图,点击这个选项:

http请求软件,http,网络协议,网络

        随便选择一个,如图:

http请求软件,http,网络协议,网络

        这就是对应语言,使用代码构造的HTTP请求。

http请求软件,http,网络协议,网络

        okHttpClient是一个比较知名的 Java 的客户端的 HTTP 客户端库,后续如果要用到它,但不知道代码咋写,就可以在这里生成代码

        除此之外,postman还是一个有对象的软件,它的对象是postwoman。


        构造http请求还能使用 form表单 和 ajax,这里就不做讨论了

二、通过 Java socket 构造 HTTP 请求

        所谓的 HTTP 请求,本质就是按照HTTP的格式,往TCP Socket 里写入一个字符串所谓的 HTTP 响应,本质就是按照TCP Socket 中读取一个字符串,按照 HTTP 协议的格式来解析

        基于 Socket 的知识,完全可以构造出一个简单的 HTTP 客户端程序,用来发送 HTTP 请求,代码如下:文章来源地址https://www.toymoban.com/news/detail-854612.html

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class HttpClient {
    private Socket socket;
    private String ip;
    private int port;
    public HttpClient(String ip, int port) throws IOException {
        this.ip = ip;
        this.port = port;
        socket = new Socket(ip, port);
    }
    public String get(String url) throws IOException {
        StringBuilder request = new StringBuilder();
        // 构造⾸⾏
        request.append("GET " + url + " HTTP/1.1\n");
        // 构造 header
        request.append("Host: " + ip + ":" + port + "\n");
        // 构造 空⾏
        request.append("\n");
        // 发送数据
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write(request.toString().getBytes());
        // 读取响应数据
        InputStream inputStream = socket.getInputStream();
        byte[] buffer = new byte[1024 * 1024];
        int n = inputStream.read(buffer);
        return new String(buffer, 0, n, "utf-8");
    }
    public String post(String url, String body) throws IOException {
        StringBuilder request = new StringBuilder();
        // 构造⾸⾏
        request.append("POST " + url + " HTTP/1.1\n");
        // 构造 header
        request.append("Host: " + ip + ":" + port + "\n");
        request.append("Content-Length: " + body.getBytes().length + "\n");
        request.append("Content-Type: text/plain\n");
        // 构造 空⾏
        request.append("\n");
        // 构造 body
        request.append(body);
        // 发送数据
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write(request.toString().getBytes());
        // 读取响应数据
        InputStream inputStream = socket.getInputStream();
        byte[] buffer = new byte[1024 * 1024];
        int n = inputStream.read(buffer);
        return new String(buffer, 0, n, "utf-8");
    }
    public static void main(String[] args) throws IOException {
        HttpClient httpClient = new HttpClient("42.192.83.143", 8080);
        String getResp = httpClient.get("/AjaxMockServer/info");
        System.out.println(getResp);
        String postResp = httpClient.post("/AjaxMockServer/info", "this is body");
                System.out.println(postResp);
    }
}

都看到这了,点个赞再走吧,谢谢谢谢谢

到了这里,关于网络原理 - HTTP / HTTPS(4)——构造http请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络爬虫-----http和https的请求与响应原理

      目录 前言 简介 HTTP的请求与响应 浏览器发送HTTP请求的过程: HTTP请求主要分为Get和Post两种方法 查看网页请求 常用的请求报头 1. Host (主机和端口号) 2. Connection (链接类型) 3. Upgrade-Insecure-Requests (升级为HTTPS请求) 4. User-Agent (浏览器名称) 5. Accept (传输文件类型) 举例: 6. Ref

    2024年02月07日
    浏览(34)
  • 【HTTP 协议2】如何构造 HTTP 请求

    各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 📗 Java数据结构: 顺序表, 链表, 堆, 二叉树, 二叉搜索树, 哈希表等 📘 JavaEE初阶: 多线程, 网络编程, TCP/IP协议, HTTP协议

    2024年02月12日
    浏览(36)
  • 【网络应用层协议】【HTTP】详解HTTP与HTTPS、POST 请求与 GET请求 、TCP与UDP、cookie和session的区别

    目录 1. HTTP和HTTPS的区别 2. POST 请求与 GET 请求区别 3. TCP与UDP的区别 4. cookie和session的区别

    2024年04月14日
    浏览(35)
  • 【JavaEE初阶】HTTP请求的构造及HTTPS

    常见的构造HTTP 请求的方式有以下几种: 直接通过浏览器地址栏, 输入一个 URL 就可以构造出一个 GET 请求. 直接点击收藏夹, 得到的也是 GET 请求. HTML 中的一些特殊标签也会触发 GET 请求, 如: link, script, img, a… 还可以通过 form 表单标签来实现 GET/POST 请求的构造. 通过 JS 中的 aj

    2024年02月15日
    浏览(29)
  • 【Java EE】-HTTP请求构造以及HTTPS的加密流程

    作者 :学Java的冬瓜 博客主页 :☀冬瓜的主页🌙 专栏 :【JavaEE】 分享 : 在满园弥漫的沉静的光芒之前,一个人更容易看到时间,并看到自己的身影。——史铁生《我与地坛》 主要内容 :构造http请求,不需要写代码直接发送http请求:地址栏输入地址,html中 img标签,scri

    2024年02月02日
    浏览(34)
  • 【Http协议④】常见的几种构造http请求的方式,form表单构造,Ajax构造,postman构造

    前言: 大家好,我是 良辰丫 ,这篇文章我将协同大家一起去学习几种构造http请求的方式.💞💞💞 🧑个人主页:良辰针不戳 📖所属专栏:javaEE初阶 🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们一辈子的财富。 💦期待大家三连,关注,点赞,收藏。

    2024年02月06日
    浏览(41)
  • Nginx接收Http协议请求转发使用Https协议

    公司使用阿里的apigateway,规定不太友好,同是SIT环境,A系统的SIT1环境居然不能调用B系统的SIT2环境的接口。因为各个系统之间部署的SIT环境数量不同A系统可能只有1套,B系统可能有8套,这样的话,可能会随时切换调用B系统的环境,管理员不允许,于是想着用Nginx做下转发。

    2024年02月08日
    浏览(50)
  • 计算机网络——如何构造HTTP请求

            构造HTTP请求的常见方式有,通过form表单标签来实现,通过ajax来实现,这两种是通过HTML/JS来实现的,还可通过java使用Socket来进行构造(本质就是根据不同的格式来解析字符串,处理请求),最简单的也可以使用一些工具来进行构造,比如使用postman来进行构造。

    2023年04月08日
    浏览(52)
  • 通过nginx将https协议反向代理到http协议请求上

    目前一个系统仅支持https协议访问,因后端服务基于ssl协议,前端在请求是也需要支持ssl协议的https请求来访问。目前的代理服务器是nginx,现在想要 通过http访问系统 ,需通过nginx的 反向代理 或者 重定向方式 将https请求代理为http请求。可实现的做法有如下几种: 1、使后端

    2024年02月08日
    浏览(33)
  • HTTP与HTTPS:深度解析两种网络协议的工作原理、安全机制、性能影响与现代Web应用中的重要角色

    HTTP (HyperText Transfer Protocol) 和 HTTPS (Hypertext Transfer Protocol Secure) 是互联网通信中不可或缺的两种协议,它们共同支撑了全球范围内的Web内容传输与交互。本文将深度解析HTTP与HTTPS的工作原理、安全机制、性能影响,并探讨它们在现代Web应用中的核心角色。 HTTP 是一种应用层协议

    2024年04月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包