weixin_40903250 2024-01-20 17:02 采纳率: 33.3%
浏览 9
已结题

.net HTTP POST 写一个demo

img


哪位能根据图片中的接口写一个demo,winform程序,我之前写了一些,但是不会加Header

img

  • 写回答

11条回答 默认 最新

  • GISer Liu 2024-01-20 17:27
    关注

    该回答引用自GPT-4,由博主GIS_Liu编写:

    关于您提供的图片内容和问题描述,您需要的是一个在.NET环境下使用WinForms编写的HTTP POST请求的示例程序。这个程序需要将数据通过POST方法发送到指定的HTTP接口,并且要求能够添加自定义的HTTP头。

    您提供的第一张图片说明了HTTP请求的细节,包括URL路径、请求方法(POST)、内容类型(text/plain),以及需要在请求头和请求体中包含的数据。具体的,需要在请求头中添加一个名为Org-Code的字段,以及在请求体中发送一个加密过的JSON字符串。

    第二张图片提供了您目前的代码实现,该代码实现了一个基本的HTTP POST请求,但缺少了添加请求头的部分。

    下面是一个示例代码,包含如何添加自定义请求头(以添加Org-Code为例)以及发送请求体:

    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WinFormsHttpPostDemo
    {
        public partial class MainForm : Form
        {
            public MainForm()
            {
                InitializeComponent();
            }
    
            private void buttonSendPost_Click(object sender, EventArgs e)
            {
                string url = "http://你的接口地址";
                string orgCodeValue = "你的Org-Code值";
                string postData = "这里是你加密后的JSON数据";
    
                string response = HttpPost(url, orgCodeValue, postData);
                MessageBox.Show(response);
            }
    
            private string HttpPost(string url, string orgCode, string postData)
            {
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.Method = "POST";
                    request.ContentType = "text/plain";
                    request.Headers.Add("Org-Code", orgCode); // 添加自定义的请求头
    
                    byte[] dataBytes = Encoding.UTF8.GetBytes(postData);
                    request.ContentLength = dataBytes.Length;
    
                    using (Stream requestStream = request.GetRequestStream())
                    {
                        requestStream.Write(dataBytes, 0, dataBytes.Length);
                    }
    
                    using (WebResponse response = request.GetResponse())
                    using (Stream responseStream = response.GetResponseStream())
                    using (StreamReader reader = new StreamReader(responseStream, Encoding.UTF8))
                    {
                        return reader.ReadToEnd();
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }
        }
    }
    

    请将上述代码中的"http://你的接口地址"替换为实际的接口地址,"你的Org-Code值"替换为实际的机构代码,"这里是你加密后的JSON数据"替换为实际的加密JSON字符串。

    注意:上面的代码是一个简化的示例,实际使用中可能需要根据实际情况做出相应的调整,例如处理HTTP状态码、异常处理等。在使用前,请确保理解代码的工作原理,并根据您的具体需求和安全要求进行必要的修改。

    如果该回答解决了您的问题,请采纳!如果没有,请详述问题所在!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

问题事件

  • 系统已结题 1月30日
  • 已采纳回答 1月22日
  • 创建了问题 1月20日

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比