HTTP——POST请求详情

POST请求

【传输实体文本】向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在POST请求体中。POST 请求可能会导致新的资源的建立或已有资源的修改。

场景:

  1. 提交用户注册信息。

  2. 提交修改的用户信息。

常见的post提交数据类型:

第一种:application/json这是json格式,也是非常友好的深受喜欢的一种,如下

cs 复制代码
    {"input1":"xxx","input2":"ooo","remember":false}

第二种:application/x-www-form-urlencoded

浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数

cs 复制代码
    input1=xxx&input2=ooo&remember=false

第三种:multipart/form-data:这一种是表单格式的,数据类型如下

cs 复制代码
    ------WebKitFormBoundaryrGKCBY7qhFd3TrwA Content-Disposition: form-data; 
name="text"title------WebKitFormBoundaryrGKCBY7qhFd3TrwA Content-Disposition: 
form-data; name="file"; filename="chrome.png" Content-Type:
image/png PNG ... content of chrome.png ...
------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

第四种:text/xml:这种直接传的xml格式

第五种:application/octet-stream:这种类型通常用于发送二进制数据。

第六种:Multipart/formdata:上传文件时所用格式

发送POST请求

cs 复制代码
    // 1 创建请求对象
    WebRequest request = WebRequest.Create("http://192.168.113.74:3000/register");
    
    // 2 设置post请求
    request.Method = "POST";
    
    // 3 设置超时时间
    request.Timeout = 30000;
    
    // 4 设置请求内容类型 (请求内容类型主要是针对传递时普通数据和传递图片而设置的)
    request.ContentType = "application/x-www-form-urlencoded"; // 主要针对传递数据是字符串格式
    
    // 5 设置请求数据
    string data = "name=" + this.textBox1.Text + "&psw=" + this.textBox2.Text; // 组织写入数据
    byte[] bs = Encoding.UTF8.GetBytes(data); // 转成字节数据
    Stream postStream = request.GetRequestStream(); // 传进传递数据
    
    // write方法 :
    // 参数1 字节数组,把字符串可以转成字节数组
    // 参数2 从那个地方开始写入,从头开始写,写0
    // 参数3 写入的长度
    postStream.Write(bs,0,bs.Length); // 写入数据
    
    
    // 6 获取响应
    WebResponse response = request.GetResponse(); // 获取响应
    Stream st = response.GetResponseStream(); // 响应流
    StreamReader sr = new StreamReader(st); // 创建读取工具
    string data1 = sr.ReadToEnd(); // 获取响应字符串
    
    st.Close();
    sr.Close();
    this.label3.Text = "结果:\n"+ data1;
相关推荐
FPGA小迷弟1 小时前
FPGA开发Vivado Block Design/Vitis/SDK/xlinx/开发教程,保姆级别,一看就会!
网络协议·tcp/ip·fpga开发·verilog·fpga
FPGA小迷弟1 小时前
基于FPGA实现智能网卡的概念,什么是智能网卡
网络协议·tcp/ip·fpga开发·verilog·fpga
DYWorker0013 小时前
第1课:基于正点原子RK3568开发板读懂Linux内核
linux·运维·网络
Lzg_na5 小时前
数据链路层差错控制使用的算法详解
网络
努力努力再努力wz5 小时前
【C++ 高阶系列】C++ 高性能网络编程:当 Reactor 遇见协程:从 epoll 回调到异步 MySQL,彻底打通任务挂起与恢复
网络·c++·mysql
loulanyue_5 小时前
当AI学会自主攻击与渗透破壁:Agent行为链失控与Mythos级攻防颠覆下的安全范式重构——读CNCC2026第六届网络生态治理论坛实录
网络·人工智能·安全
2401_868534786 小时前
英语演讲:麻省理工校长2024年毕业典礼演讲
服务器·网络
码完就睡6 小时前
Linux——以太网协议
运维·服务器·网络·1024程序员节
CV爱数码7 小时前
论文精读|RED-CNN:残差编解码网络,低剂量 CT 去噪的经典基线
网络·人工智能·算法·cnn·ct·重建·x-ray
星恒讯工业路由器7 小时前
Modbus透传和Modbus网关有什么区别?从字节转发到协议翻译的选型思路
网络·物联网·modbus·工业物联网·工业网关·rs485·协议转换