首页 > 编程语言 >C#HTTP.POST获取数据

C#HTTP.POST获取数据

时间:2023-05-27 14:22:06浏览次数:65  
标签:set string para get C# 获取数据 using POST public

C#HTTP获取数据主要有两种方式 ,这里主要记录Post方式

1.Post获取

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Http;
using Newtonsoft;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using System.Windows.Forms;

namespace LabelPrinter
{

  


    /// <summary>
    /// WebApi帮助类
    /// </summary>
    class WebHelper
    {

        public WebHelper()
        {
            HttpClientHelper = new HttpClient();


        }


        #region LocalVariables

        HttpClient HttpClientHelper;
        static string BaseUrl = "http://10.172.2.171:16041/WebApi/MesCommand?msgFormat=JSON&message=";

        #endregion

        OuterJsonData TestOuterJsonClass = new OuterJsonData();

        InnerJsonClass TestInnerJsonClass = new InnerJsonClass();
        /// <summary>
        /// 获取Http数据
        /// </summary>
        /// <param name="sn"></param>
        /// <returns></returns>
        public string  GetSnDataByGet(string SN)
        {
            try
            {
                //TestInnerJsonClass.CartonId = SN;
                //string AgrumentStr = JsonConvert.SerializeObject(TestInnerJsonClass);
                //TestOuterJsonClass.assemblyName = "SMTTrackOut";

                //TestOuterJsonClass.className = "SMTTrackOut.GetCartonInfo";

                //TestOuterJsonClass.sender = "AUTO";

                //TestOuterJsonClass.arguments = AgrumentStr;

                //string JsonData = JsonConvert.SerializeObject(TestOuterJsonClass);

                string JsonStringHeader = "{ 'assemblyName':'SMTTrackOut','className':'SMTTrackOut.GetCartonInfo','sender':'AUTO','arguments':{ 'CartonId':'";

                string JsonStringTail = "'} }";
                var Response1 = HttpClientHelper.GetAsync(BaseUrl + JsonStringHeader+ SN+ JsonStringTail).Result;


                return Response1.Content.ReadAsStringAsync().Result;
            }
            catch(HttpRequestException)
            {
                return "RequstErr";
            }
  
        }
   



        /// <summary>
        /// 分割Json字符串
        /// </summary>
        /// <param name="JsonData"></param>
        /// <returns></returns>
        public ParaMeters GetPrintData(string sn,string JsonData)
        {
            JObject obj=null;
            try
            {
                 obj = JObject.Parse(JsonData);
                string Result = obj["result"].ToString();

                ParaMeters para = new ParaMeters();



                     para.ProDuct = JObject.Parse(JsonData).SelectToken("ProductId").ToString();
                     para.SN = sn;
                     para.PN = obj["ProductId"].ToString();

                     para.VenderLot = DateTime.Now.ToString("yyyy-MM-dd") + DateTime.Now.ToLongTimeString().ToString();

                     para.ShipQty = obj["LotQty"].ToString();

                     para.DueDate = DateTime.Now.AddYears(1).ToString();
                     para.BinCode = "";
                     para.Location = "";


                return para;

            }
            catch(Exception er)
            {
                MessageBox.Show(er.ToString());
                return null;
            }


          
        }


        
    }

    class ParaMeters
    {
        /// <summary>
        /// 字符
        /// </summary>
        public  string ProDuct { set; get; }
        
        /// <summary>
        /// SN一维码底部带字符
        /// </summary>
        public string SN { set; get; }

        /// <summary>
        /// PN码字符+一维码
        /// </summary>
        public string PN { set; get; }

        /// <summary>
        /// 日期时间
        /// </summary>
        public string VenderLot { set; get; }

        /// <summary>
        /// 数量字符+一维码
        /// </summary>    
        public string ShipQty { set; get; }

        /// <summary>
        /// 截止日期(不带时间)
        /// </summary>
        public string DueDate { set; get; }

        /// <summary>
        /// 一维码
        /// </summary>
        public string BinCode { set; get; }

        /// <summary>
        /// 无。只有Location:
        /// </summary>
        public string Location { set; get; }

    }

    public class   OuterJsonData
    {


        private string  _AssemblyName;
        public string  assemblyName
        {
            get { return _AssemblyName; }
            set { _AssemblyName = value; }
        }


        private string  _ClassName;
        public string  className
        {
            get { return _ClassName; }
            set { _ClassName = value; }
        }

        private string _Sender;
        public string sender
        {
            get { return _Sender; }
            set { _Sender = value; }
        }

        private string _Arguments;
        public string arguments
        {
            get { return _Arguments; }
            set { _Arguments = value; }
        }

        


    }

    public class InnerJsonClass
    {

        private string _CartonId;

        public string CartonId
        {
            get { return _CartonId; }
            set { _CartonId = value; }
        }

    }

}

 

标签:set,string,para,get,C#,获取数据,using,POST,public
From: https://www.cnblogs.com/HomeSapiens/p/17436681.html

相关文章

  • React18+TS+NestJS+GraphQL全栈开发示例
    React18+TS+NestJS+GraphQL全栈开发示例全栈开发是指一位开发人员可以熟练掌握前端、后端和数据库等多个领域的技术,能够完整地开发一个应用程序。在本文中,我们将介绍如何使用React18+TS+NestJS+GraphQL这个技术组合来进行全栈开发。技术选型在开始开发之前,我们需要选择合适的技术栈......
  • 01python环境安装 conda + vscode
    conda安装win10安装1、从官网下载python版本对应的miniconda;2、一直Next;不用配置环境变量;修改安装路径,因为后面创建的虚拟环境是放在安装目录;3、安装后,打开AnacondaPrompt即可使用;4、配置镜像(国内下载太慢,还容易卡住)Windows用户无法直接创建名为.condarc的文件,可先生成......
  • centos 8.5 MT26448 万兆网卡驱动
    https://network.nvidia.com/products/ethernet-drivers/linux/mlnx_en/下载4.9-6.0.6.0-LTSwgethttps://www.mellanox.com/downloads/ofed/MLNX_EN-4.9-6.0.6.0/mlnx-en-4.9-6.0.6.0-rhel8.5-x86_64.tgztarxvfmlnx-en-4.9-6.0.6.0-rhel8.5-x86_64.tgzcdmlnx-en-4.9-6.0......
  • Eplices 的自动补全烦恼
    例如:你本想定义StringName;但是在你打出name会自动补全下拉表单的第一个变成NameString;意味着你还需要移动光标或者删除; 解决办法:打开window》preference》JAVA>Editor》ContentAssist>Disableinsertiontriggersexcept'Enter'......
  • ArchUnit 架构测试框架
    很多时候我们觉得架构比较复杂,或者架构比较玄幻,同时对于自己设计的架构方案心里总是没有底ArchUnit是一个不错的选择可以像单元测试一样,测试我们的架构是否合理(包含了包以及类的依赖,分层,循环依赖。。。。)说明对于希望检查自己方案架构问题的,可以尝试下ArchUnit工具参考资料h......
  • Could not commit Hibernate transaction,Transaction not successfully started
    CouldnotcommitHibernatetransaction,Transactionnotsuccessfullystarted1.数据库操作和业务分离。事务内属于业务验证抛出的异常问题或其他不符合当前业务规则的异常,挪到上一层级,如接口层或业务视图层,以此避免该类问题2.evict。获取当前session,evict当前数据库对象,避......
  • gnmi 基于grpc 的网络管理接口
    网络自动化是这几年对于网络管理比较重要的话题,openconfig就是一个开放组织,gnmi是基于grpc提供的网络管理接口,对于需要开发网络自动化的应用是值得参考使用的参考资料https://github.com/openconfig/gnmihttp://www.openconfig.net/......
  • CMT206人力中心计算
    CardiffSchoolofComputerScienceandInformaticsCourseworkAssessmentPro-formaModuleCode:CMT206ModuleTitle:HumanCentricComputingAssessmentTitle:EvaluationAndAnalysisOfInterfaceDesignAssessmentNumber:1DateSet:Tuesday31January2023Subm......
  • electron_vue
    安装npmielement-ui-SQ:安装npm时,如果要安装的库版本与要安装到的项目版本不兼容,可以选择使用--legacy-peer-deps来半强制?看起来您将能够安装。但是,安装后,似乎有必要确保包按预期正常工作。npm--save--legacy-peer-depsielement-ui-SA:3.0vue引入element......
  • cpp: Iterator Pattern
     /*****************************************************************//***\fileGoldIterator.h*\brief迭代器模式IteratorPattern*2023年5月22日涂聚文GeovinDuVisualStudio2022edit.*\authorgeovindu*\dateMay2023*******************......