C# 使用Http Post方式发送Json数据,只需二步。

时间:2025-03-10 09:51:41

一.先在工程增加 类
using System;
using ;
using ;
using ;
using ;
using ;
using ;
using ;
using ;

namespace
{
class RestClient
{
private Cookies = new ();
private string BaseUri;
public RestClient(string baseUri)
{
= baseUri;
}

    #region Get请求
    public string Get(string uri)
    {
        //先根据用户请求的uri构造请求地址
        string serviceUrl = ("{0}/{1}", , uri);
        //创建Web访问对  象
        HttpWebRequest myRequest = (HttpWebRequest)(serviceUrl);
        //通过Web访问对象获取响应内容
        HttpWebResponse myResponse = (HttpWebResponse)();
        //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
        StreamReader reader = new StreamReader((), Encoding.UTF8);
        //string returnXml = (());//如果有编码问题就用这个方法
        string returnXml = ();//利用StreamReader就可以从响应内容从头读到尾
        ();
        ();
        return returnXml;
    }

    //internal string Post(string v)
    //{
    //    throw new NotImplementedException();
    //}
    #endregion

    #region Post请求
    public string Post(string data, string uri)
    {

#if true

        //先根据用户请求的uri构造请求地址
        string serviceUrl = ("{0}/{1}", , uri);
        //创建Web访问对象
        HttpWebRequest myRequest = (HttpWebRequest)(serviceUrl);


        //.Expect100Continue = false; // 取消100-continue

        //private  Cookies = new ();
        // = Cookies; //头后面加两个 \r\n

        //ServicePointManager.Expect100Continue = false;// 取消100-continue
        // = true;
        //ServicePointManager.Expect100Continue = true;
        // = true;
        // = ;


       
        // = 3000;

        // = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.83 Safari/535.11";

        //把用户传过来的数据转成“UTF-8”的字节流
        byte[] buf = ("UTF-8").GetBytes(data);




         = "POST";
         = "application/json";//Http内容类型
         = 1;//获取或设置请求将跟随的重定向的最大数目。
         = true;//获取或设置一个值,该值指示请求是否应跟随重定向响应。
         = false;//获取或设置一个值,该值指示是否将数据分段发送到 Internet 资源。
         = Cookies;//获取或设置与此请求关联的cookie。
         = "cps";//获取或设置 User-agent HTTP 标头的值
         = 18000;//获取或设置请求的超时值。 设置请求超时时间,单位为毫秒

         = ;




        //发送请求
        //Stream stream = ();
       Stream stream = null;

      

        try
        {
            stream = ();  //获取用于写入请求数据的Stream对象
        }
        catch (Exception ex)
        {
            (ex);
             return "";
         }

        
        (buf, 0, );
        ();




        //获取接口返回值
        //通过Web访问对象获取响应内容
        HttpWebResponse myResponse = (HttpWebResponse)();
        //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
        StreamReader reader = new StreamReader((), Encoding.UTF8);
        //string returnXml = (());//如果有编码问题就用这个方法
        string returnXml = ();//利用StreamReader就可以从响应内容从头读到尾
        ();
        ();



        return returnXml;

#endif

    }
    #endregion




    #region Put请求
    public string Put(string data, string uri)
    {
        //先根据用户请求的uri构造请求地址
        string serviceUrl = ("{0}/{1}", , uri);
        //创建Web访问对象
        HttpWebRequest myRequest = (HttpWebRequest)(serviceUrl);
        //把用户传过来的数据转成“UTF-8”的字节流
        byte[] buf = ("UTF-8").GetBytes(data);

         = "PUT";
         = ;
         = "application/json";
         = 1;
         = true;
        //发送请求
        Stream stream = ();
        (buf, 0, );
        ();

        //获取接口返回值
        //通过Web访问对象获取响应内容
        HttpWebResponse myResponse = (HttpWebResponse)();
        //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
        StreamReader reader = new StreamReader((), Encoding.UTF8);
        //string returnXml = (());//如果有编码问题就用这个方法
        string returnXml = ();//利用StreamReader就可以从响应内容从头读到尾
        ();
        ();
        return returnXml;

    }

#endregion

#region Delete请求
public string Delete(string data, string uri)
{
//先根据用户请求的uri构造请求地址
string serviceUrl = (“{0}/{1}”, , uri);
//创建Web访问对象
HttpWebRequest myRequest = (HttpWebRequest)(serviceUrl);
//把用户传过来的数据转成“UTF-8”的字节流
byte[] buf = (“UTF-8”).GetBytes(data);

         = "DELETE";
         = ;
         = "application/json";
         = 1;
         = true;
        //发送请求
        Stream stream = ();
        (buf, 0, );
        ();

        //获取接口返回值
        //通过Web访问对象获取响应内容
        HttpWebResponse myResponse = (HttpWebResponse)();
        //通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
        StreamReader reader = new StreamReader((), Encoding.UTF8);
        //string returnXml = (());//如果有编码问题就用这个方法
        string returnXml = ();//利用StreamReader就可以从响应内容从头读到尾
        ();
        ();
        return returnXml;

    }

#endregion

}

}

二.调用Post发送数据

            RestClient client = new RestClient("http://192.168.001.110:8086");
            string result = ("{"day":8,"hour":15,"min":42,"month":5,"sec":15,"week":1,"year":2023}", "api/v1/settimecfg");