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

我之前是接触过传参,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

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值