C#post和GET方法的使用及案例展示

2023-11-08

我之前是接触过传参,http协议浏览器和服务器的三次握手以及常用的get/post传参,都是有了解的,不过c#实现post/get请求我第一想到的是?嗯?Ajax?当然这肯定不是。

我们接下来用下面这页面为例
在这里插入图片描述

我们先来分析下

在这里插入图片描述
我们先看button1的方法哈
在这里插入图片描述
参考下怎么定义返回参数的格式
在这里插入图片描述
代码贴下

 public class Employees
        {
            public string firstName { get; set; }
            public string lastName { get; set; }
        }

        public class Manager
        {
            public string salary { get; set; }
            public string age { get; set; }
        }

        public class RootObject
        {
            public string ID { get; set; }
            public List<Employees> employees { get; set; }
            public List<Manager> manager { get; set; }
        }

记得引用库
在这里插入图片描述
post完整代码

 private void button1_Click(object sender, EventArgs e)
        {
            txt_Url.Text = "http://192.168.253.136:3000/login";
            txt_User.Text = "Boy";
            txt_Pwd.Text = "12345";
            txt_VCode.Text = "admin";
            string pwd = "";
            string postData = "username=" + txt_User.Text + "&password=" + txt_Pwd.Text;
            postData += ("&vcode=" + txt_VCode.Text);
            byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(postData);
            string url = txt_Url.Text;
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url));
            webRequest.Method = "POST";             //POST
            webRequest.ContentType = "application/json;charset=UTF-8";
            webRequest.ContentLength = byteArray.Length;
            //连接远程服务器
            Stream newStream = webRequest.GetRequestStream();
            newStream.Write(byteArray, 0, byteArray.Length);
            newStream.Close();

            HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
            StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

            //txt_Response.Text = sr.ReadToEnd();
            //返回的json数组

            string jsonText = sr.ReadToEnd();
            Console.WriteLine(jsonText);

            RootObject rb = JsonConvert.DeserializeObject<RootObject>(jsonText);

            Console.WriteLine(rb.ID);

            Console.WriteLine(rb.employees[0].firstName);

            foreach (Manager ep in rb.manager)
            {
                Console.WriteLine(ep.salary);
                pwd = pwd + "\n" + ep.salary;
            }

            txt_Response.Text = rb.ID + "\n" + rb.employees[0].firstName + "\n" + pwd;
        }


我们再说下GET(引用里一个库 using System.Collections.Generic;)

      private void button2_Click(object sender, EventArgs e)
        {
            txt_Url.Text = "http://192.168.253.136:3000/find";
            txt_User.Text = "Boy";
            txt_Pwd.Text = "12345";
            txt_VCode.Text = "admin";
            string url = txt_Url.Text;
            string res = HttpHelper.GetHttpResponse(url,6000);
            txt_Response.Text = res;

        }

我们经常是将方法封装一下,方便别的地方调用,所以我们新建一个HttpHelper类
在这里插入图片描述
get的方法如下

using System.IO;
using System.Net;
using System.Text;

namespace wangyuyao
{
    internal class HttpHelper
    {
        public static string GetHttpResponse(string url, int Timeout)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "GET";
            request.ContentType = "text/html;charset=UTF-8";
            request.UserAgent = null;
            request.Timeout = Timeout;

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            return retString;
        }

    
    }
}

然后我们去调用

 private void button2_Click(object sender, EventArgs e)
        {
            txt_Url.Text = "http://192.168.253.136:3000/find";
            txt_User.Text = "Boy";
            txt_Pwd.Text = "12345";
            txt_VCode.Text = "admin";
            string url = txt_Url.Text;
            string res = HttpHelper.GetHttpResponse(url,6000);
            txt_Response.Text = res;

        }

然后就可以访问了

百度网盘demo案例

链接:https://pan.baidu.com/s/1gRcJSkfSWbqVahmrp7f6jg 提取码:ah5e

顺便说一下,需要一个后端服务才可以呢,建议用弄得express在虚拟机或者自己的服务器启动下就可以了
其实解析json数据的方法有很多种类,具体可以参考这个 C# 解析 json

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#post和GET方法的使用及案例展示 的相关文章

  • OSPF实验

    我们坠落 破碎 掉入深渊 但我们终会被托起 被治愈 我们无所畏惧 OSPF部分实验 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 没关系的 大家都会做错选择 会莫名其妙掉眼泪 走在路上会突然崩溃 但这并不影响我们去看
  • 静态路由的划分。。。。。

    先了解静态路由在做作业 静态路由的作业 一 静态路由是什么 二 作业 1 分析划分子网 2 将ip地址和环回地址先写入路由器 包括R5 3 全网可通 并且防环 先写到这里 加油 坚持写博客 坚持努力 我要假期悄悄努力 一 静态路由是什么 静
  • 什么是集群、分布式、集中式、伪分布式

    1 集中式 将项目等部署到同一台机器上 对机器性能要求比较高 一般会用多台机器备份 否则 如果机器出现死机等状况 整个项目将不能运行 eg 就好比你要盖一座房子 你房子就给一个人盖 如果这个人生病或者有事 你还没有合适的人来代替这个人 你的
  • @FeignClient 注解的使用与常见问题

    概述 Feign 是一个声明式的 Web 服务 通过定义一个添加相应注解的接口 即可完成一个 Web 服务的接口 SpringCloud 对 Feign 进行了封装以后 其开始能够支持 Spring MVC 标准注解 同时在 SpringC
  • IS-IS协议 HCIP

    我需要 最狂的风 和最静的海 HCIP IS IS协议基本原理 场景应用 历史起源 路由计算过程 地址结构 路由器分类 邻居HELLO报文 邻居关系建立 DIS及DIS与DR的类比 链路状态信息的载体 链路状态信息的交互 路由算法 网络分层
  • 关于网络安全精英赛(初赛),我个人的知识盲点

    重点在扫盲 目录 一 奇奇怪怪的专业名词 二 各种杂乱的知识点 概括整理 2 1网络安全威胁 a 概念 b 类型 c 分类 系统漏洞危险 有害程序威胁 2 2 安全策略 物理安全策略 访问控制策略 安全性指标 安全等级 2 3密码分类和攻击
  • 2021-12-23 网工基础(十四) 链路聚合的两种模式、堆叠、集群、IP路由基础

    一 链路聚合的两种模式 1 手工模式 管理员手工指定 无协议报文 没有开销 2 LACP模式 交换机之间会交互LACP的协议 会有一点儿报文交互 一般正常情况下推荐使用LACP模式 一般自动协商都会手工强制的要好 除非自动确实失败 无法成功
  • 配置MAC刷新ARP功能

    在以太网中 MAC地址表项用于指导设备进行二层数据转发 ARP表项通过IP地址和MAC地址的映射指导设备进行不同网段间的通信 MAC地址表项的出接口通过报文触发刷新的 ARP表项的出接口是在老化时间到后通过老化探测进行刷新的 这样就可能会出
  • Python中的网络通信

    概述 在我们平时生活工作中 常常会接触到网络通信的内容 不管你是普通的用户 还是通信行业内的开发人员 都无法避免与网络通信打交道 我在初步学习python的过程中 对python的网络通信问题做了总结 所以写下这篇文章作为记录 也希望能给其
  • 网络基础:IP数据包格式

    目录 一 理论 1 IP数据包完整格式 2 IP数据包首部各字段 3 ARP协议 二 实验 1 华为系统中的ARP命令 一 理论 1 IP数据包完整格式 根据TCP IP 协议 使用 IP 协议传输数据的包被称为 IP 数据包 IP Dat
  • 网络体系结构

    网络体系结构概述 1 网络协议 网络协议的三要素 语义 语法和同步 语法 规定通信双方彼此应该如何操作 即确定协议元素的格式 如 数据格式 信号平等规定 语义 规定通信双方要发出的控制信息 执行的动作和返回的应答等 包括用于调整和运行差错处
  • golang实现p2p之UDP打洞

    当今互联网到处存在着一些中间件 MIddleBoxes 如NAT和防火墙 导致两个 不在同一内网 中的客户端无法直接通信 这些问题即便是到了IPV6时代也会存在 因为即使不需要NAT 但还有其他中间件如防火墙阻挡了链接的建立 目前部署的中间
  • 路由器OSPF动态路由配置(扩展版)

    实验7 路由器OSPF动态路由配置 扩展版 使用软件 Cisco Packet Tracer Student Multilayer Switch0 Switch gt Switch gt en Switch conf t Switch co
  • 网络基础:ACL与NAT

    目录 一 理论 1 ACL 2 NAT 二 实验 1 基础ACL 2 高级ACL 3 静态NAT 4 Easy IP 一 理论 1 ACL 1 ACL ACL 是Access Control List的简写 中文名称叫做 访问控制列表 它是
  • C#post和GET方法的使用及案例展示

    我之前是接触过传参 http协议浏览器和服务器的三次握手以及常用的get post传参 都是有了解的 不过c 实现post get请求我第一想到的是 嗯 Ajax 当然这肯定不是 我们接下来用下面这页面为例 我们先来分析下 我们先看butt
  • 网络编程之字节序

    字节序 计算机数据表示存在两种字节顺序 网络字节顺序NBO Network Byte Order 与主机字节顺序HBO Host Byte Order 或者是大端模式和小端模式 网络字节序 大端模式 网络字节顺序NBO 按从高到低的顺序存储
  • 关于IP网段间互访的问题——路由是根本

    文章出处 http blog csdn net dog250 archive 2010 02 09 5303291 aspx 之所以IP网段间可以互相访问 完全靠的就是路由 因此路由是IP通信的根本 IP是机器可以进行通信的资格证书 而路由
  • Win7下使用Putty代替超级终端通过COM串口连接开发板方法

    1 如果电脑 笔记本 没有串口接口 则需要使用一个 USB Serial 转换线 这里使用 prolific usb serial USB 串口转换线 首先需要在win7上安装对应的 USB 串口转换线 驱动程序 PL2303 Prolif
  • TCP协议(三次握手)

    TCP Transmission Control Protocol 协议的全称是传输控制协议 它负责为不同终端系统的应用进程之间提供面向连接的通信服务 即TCP协议能够对自己提供的连接实施控制 它是一种可靠的传输层协议 一 TCP协议简介
  • 网络基础——传输层中的TCP,UDP和Wireshark抓包过程详解

    传输层 传输层向上面的应用层提供通信服务 属于面向通信部分的最高层 也是用户功能中的最底层 传输层为相互通信的应用进程提供了逻辑通信 主要包括两个协议 TCP协议和UDP协议 传输层的主要作用 分段及封装应用层送来的数据 提供端到端的传输服

随机推荐

  • 《每日一题》NO.18:哪些因素会影响标准单元的延迟?

    芯司机 每日一题 会每天更新一道IC面试笔试题 其中有些题目已经被很多企业参考采用了哦 聪明的你快来挑战一下吧 今天是第18题 标准单元是RTL2GDS流程的基础 哪些因素会影响到标准单元的延迟呢 我们在工程项目中应该如何处理这些因素呢 快
  • springboot2

    springboot2 springboot2 核心功能 配置文件 web开发 数据访问 Junit5测试 actutor生产指标监控 springboot核心原理解析 springboot2场景整合 虚拟化技术 安全控制 缓存技术 消息中
  • 什么是SQL注入式攻击,如何去防范SQL注入式攻击

    一 SQL注入式攻击 1 所谓SQL注入式攻击 就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串 欺骗服务器执行恶意的SQL命令 2 在某些表单中 用户输入的内容直接用来构造 或者影响 动态SQL命令 或作为存储过程的输
  • 测试用例、缺陷报告示例子

    测试用例 用例标题的作用 让人更清晰直观的查看 前置条件和测试步骤 测试步骤是在前置条件的基础上进行的 合格测试用例标题 缺陷 缺陷的介绍 需求 规格 说明书中明确要求的功能 缺失 少功能 需求 规格 说明书中致命不应该出现的错误 功能错误
  • 【项目实战】C/C++语言带你实现:围棋游戏丨详细逻辑+核心源码

    每天一个编程小项目 提升你的编程能力 游戏介绍 下围棋的程序 实现了界面切换 选择路数 和围棋规则 也实现了点目功能 不过只有当所有死子都被提走才能点目 不然不准确 操作方法 鼠标操作 游戏截图 编译环境 VisualStudio2019
  • 看完这篇 教你玩转渗透测试靶机Vulnhub——The Planets:Mercury

    Vulnhub靶机The Planets Mercury渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 漏洞发现 SSH登入 CVE 2021 4034漏洞提权 获
  • CCAI 2017

    阅读原文请点击 摘要 2017 中国人工智能大会 CCAI 2017 在杭州国际会议中心盛大召开 CCAI发起人 中国科学院院士 中国人工智能学会副理事长谭铁牛院士在大会首日主会场进行了现场致辞 7月22日 23日的 2017 中国人工智能
  • 你必须收藏的Github技巧

    一秒钟把Github项目变成前端网站 GitHub Pages大家可能都知道 常用的做法 是建立一个gh pages的分支 通过setting里的设置的GitHub Pages模块可以自动创建该项目的网站 这里经常遇到的痛点是 master
  • 详细解析赋值、浅拷贝和深拷贝的区别

    一 赋值 Copy 赋值是将某一数值或对象赋给某个变量的过程 分为下面 2 部分 基本数据类型 赋值 赋值之后两个变量互不影响 引用数据类型 赋址 两个变量具有相同的引用 指向同一个对象 相互之间有影响 对基本类型进行赋值操作 两个变量互不
  • 将gitlab的代码仓库实时备份到其他服务器

    首先 这个题目是不完全正确的 因为经过各种尝试 gitlab的仓库直接备份到远端 拷贝回来后是不能使用的 表现为gitlab中能看到项目 但每个项目的内容都无法读取出来 页面上会有报错提示 所以 最终采用的是实时备份gitlab的备份库 最
  • 基于TCN时间卷积网络(含因果膨胀卷积)的单特征输入股票预测项目实战(pytorch)(一维特征)【有数据集和代码,可运行】

    一 项目简介 股票预测是金融领域中的重要问题 通过对历史股票数据的分析和建模 我们可以尝试预测未来股票的价格趋势 为投资决策提供参考 本项目是基于PyTorch深度学习框架实现一个使用时间卷积网络 TCN Temporal Convolut
  • 把request对象中的请求参数封装到bean中/生成UUID

    package me gacl util import java util Enumeration import java util UUID import javax servlet http HttpServletRequest imp
  • 第七章 结构化设计

    第七章 结构化设计 1 软件结构图的形态特征有哪些指标 各有什么含义 1 深度 指结构图控制的层次 即模块的层数 2 宽度 指一层中最大的模块个数 3 扇出 指一个模块直接下属模块的个数 如模块M的扇出为3 4 扇入 指一个模块直接上属模块
  • 递归删除文件,但不删除根目录

    前提 最近在做开发的时候 要求删除文件夹中的子文件夹和文件 但不能删除根目录 现在先把代码给贴上来 再分析分析代码 代码已经测试过 完成可以实现要求 import java io public class testFile618 publi
  • GC 的三种基本实现方式

    参考资料 代码的未来 作者 日 松本行弘 由于并非本人原著 我只是个 搬运工 SO 未经本人允许请尽情转载 另外个人像说明一下这里所说的GC指泛指垃圾回收机制 而单指Java或其他某种特定语言中的GC 可能具体语言中实现的垃圾回收实现机制会
  • client-go 连接 kubernetes

    https github com kubernetes client go git 部署go 环境 wget https studygolang com dl golang go1 10 3 linux amd64 tar gz tar x
  • 从0移植uboot (一) _配置分析

    和绝大多数源码编译安装一样 uboot的编译流程也类似于 make config gt make gt make install 三步 只是由于uboot本身是针对多种平台的bootloader 软件的复杂性和通用型决定了编译uboot需要
  • sqlite-manage数据库可视化管理uniqpp

    一 sqlite manage介绍 sqlite manage 是 SQLite 数据库可视化管理插件 更方前期查看和操作SQLite数据库 给APP开发者提供方便 避免重复造轮子 内置增删改查工具类 可按需全局引用或单独引用 二 使用sq
  • 服务器查看数据库日志文件,服务器数据库查看日志文件

    服务器数据库查看日志文件 内容精选 换一换 对于不同业务场景 通过在调整数据库的参数配置 可以有效提升服务器性能 使用如下配置文件参数启动数据库 默认配置文件路径为 etc my cnf 其中MySQL软件安装及数据存放路径根据实际情况修改
  • C#post和GET方法的使用及案例展示

    我之前是接触过传参 http协议浏览器和服务器的三次握手以及常用的get post传参 都是有了解的 不过c 实现post get请求我第一想到的是 嗯 Ajax 当然这肯定不是 我们接下来用下面这页面为例 我们先来分析下 我们先看butt