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

这篇具有很好参考价值的文章主要介绍了C# 使用Http Post方式发送Json数据,只需二步。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.先在工程增加 RestClient.cs类
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web;

namespace CM2.CentreWin
{
class RestClient
{
private System.Net.CookieContainer Cookies = new System.Net.CookieContainer();
private string BaseUri;
public RestClient(string baseUri)
{
this.BaseUri = baseUri;
}

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


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

        //private System.Net.CookieContainer Cookies = new System.Net.CookieContainer();
        //myRequest.CookieContainer = Cookies; //头后面加两个 \r\n

        //ServicePointManager.Expect100Continue = false;// 取消100-continue
        //ServicePointManager.UseNagleAlgorithm = true;
        //ServicePointManager.Expect100Continue = true;
        //ServicePointManager.CheckCertificateRevocationList = true;
        //ServicePointManager.DefaultConnectionLimit = ServicePointManager.DefaultPersistentConnectionLimit;


       
        //myRequest.ServicePoint.ConnectionLimit = 3000;

        //myRequest.UserAgent = "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 = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(data);




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

        myRequest.ContentLength = buf.Length;




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

      

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

        
        stream.Write(buf, 0, buf.Length);
        stream.Close();




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



        return returnXml;

#endif

    }
    #endregion




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

        myRequest.Method = "PUT";
        myRequest.ContentLength = buf.Length;
        myRequest.ContentType = "application/json";
        myRequest.MaximumAutomaticRedirections = 1;
        myRequest.AllowAutoRedirect = true;
        //发送请求
        Stream stream = myRequest.GetRequestStream();
        stream.Write(buf, 0, buf.Length);
        stream.Close();

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

    }

#endregion

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

        myRequest.Method = "DELETE";
        myRequest.ContentLength = buf.Length;
        myRequest.ContentType = "application/json";
        myRequest.MaximumAutomaticRedirections = 1;
        myRequest.AllowAutoRedirect = true;
        //发送请求
        Stream stream = myRequest.GetRequestStream();
        stream.Write(buf, 0, buf.Length);
        stream.Close();

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

    }

#endregion

}

}

二.调用Post发送数据文章来源地址https://www.toymoban.com/news/detail-488130.html

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

到了这里,关于C# 使用Http Post方式发送Json数据,只需二步。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 使用C#发送HTTP的Get和Post请求

    2024年02月07日
    浏览(58)
  • 【Jmeter】信息头管理器(HTTP Header Manager) - 发送Post请求数据为json格式

    将 json 格式 请求数据输入 HTTP 请求 中的 Body Data (消息体数据 / 请求入参) 右击 Thread (线程组) 鼠标移至 Add (添加) → Config Element (配置元件) 点击 HTTP Header Manager (HTTP信息头管理器) 即可完成信息头管理器新建 进入 HTTP Header Manager (HTTP信息头管理器) 页面 点击下方 Add (添加) Nam

    2024年02月07日
    浏览(47)
  • C语言通过IXMLHTTPRequest以get或post方式发送http请求获取服务器文本或xml数据

    做过网页设计的人应该都知道ajax。 Ajax即Asynchronous Javascript And XML(异步的JavaScript和XML)。使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。 在IE浏览器中,Ajax技术就是

    2024年01月25日
    浏览(62)
  • 并发测试工具 apache-jmeter使用发送post请求JSON数据

    目录 1 下载安装 2 汉化 3 创建高并发测试 配置线程组 创建web请求 创建监听器 结果树 汇总报告  为web请求添加token 添加Content-Type用于发送json 4 启动测试 5 查看结果 官网 Apache JMeter - Download Apache JMeter 解压运行 2   打开软件设置中文 效果 补充知识: 什么是Damp-up: Ramp-Up Perio

    2024年02月10日
    浏览(47)
  • hutool Http 工具发送POST请求的几种方式。

    Hutool是一个Java工具库,提供了丰富的功能模块,包括HTTP请求发送。以下是使用Hutool发送POST请求的几种方式: 使用HttpUtil.post方法: 使用HttpUtil.post方法可以发送简单的POST请求,示例如下: 使用HttpUtil.createPost方法: 使用HttpUtil.createPost方法可以创建一个HttpPost对象,然后设置

    2024年02月13日
    浏览(37)
  • hutool Http 工具发送POST请求的几种方式

            目录 依赖 🍊Maven 🍐Gradle 实践 hutool源码 hutool调用实践 其它自定义项         本质上,HttpUtil中的get和post工具方法都是HttpRequest对象的封装,因此如果想更加灵活操作Http请求,可以使用HttpRequest。今天咱们就列举一下hutool工具中常用的几种发送post请求的方式。

    2024年02月08日
    浏览(55)
  • (一)python发送HTTP 请求的两种方式(get和post )

    注:发送请求(包括请求行、方法类型、头、体) 常见的请求方式有get、post、put、delete            格式:requests.get() (内容: url必填; params选填:url参数字典) # ~ 无参数的get请求 # ~ 有参数的get请求 # ~ 使用params的get请求        知识扩展#  requests.post() post请求分为5种,常用

    2024年02月02日
    浏览(73)
  • Vue使用axios用post方式将表单中的数据以json格式提交给后端接收

    1.后端controller层代码代码 我采用的接收形式数据是json格式 2.前端登录注册界面代码 3.遇到的问题: 3.1. 我们首先在Vue data中定义一个存放表单数据的registform{},然后给它添加上属性,在表单input处使用v-model绑定。 3.2. 接下来将registform保存到datata变量中,然后就是axios的发送请

    2023年04月27日
    浏览(55)
  • Postman发送post和get请求json数据,并用SpringBoot接受

    1. 在controller类中加入如下代码用于举例 TestContoller.java 这里有两个映射,一个是\\\"/test\\\",用于测试程序有没有成功,一个是\\\"/User\\\",为用户,存放用户的账户名和密码 2. 在dto中导入数据以封装数据 TestDto.java @Data在导入lombok插件和依赖后可以直接使用,可以起到简化代码的作用 在

    2023年04月09日
    浏览(47)
  • 使用PostMan使用post请求向后端发送json对象时报错

     报错信息:Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of com.itheima.domain.Book out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of com.itheima.domain.Book out of START_ARRAY token  at

    2024年02月03日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包