当前位置: 首页 > news >正文

.net通过类组装数据转换为json并且传递给对方接口

1、根据传递字段创建一个类

public class User

{

 public string code{ get; set; }

public string name{ get; set; }

public string? email{ get; set; }

public string? address{ get; set; }

}

2、根据对方返回字段创建一个类

public class Result
{
    /// <summary>
    /// 数据接收成功
    /// </summary>
    public string msg { get; set; }
    /// <summary>
    /// 
    /// </summary>
    public string code { get; set; }
}

3、组装数据并且转换为json传递给某个接口

private void TransferToJson()

{

User  user= new User();

user.code="zhangsan";

user.name="张三";

user.email="12334567890@163.com";

user.address="上海市静安区";

//转换为json串

string json = "[" + JsonConvert.SerializeObject(user) + "]";

string url="对方的接口地址";

HttpWebRequest req = GetWebRequest(url, "POST", null);
req.Headers.Add(HttpRequestHeader.AcceptCharset, "utf-8");
req.ContentType = "application/json";

 byte[] postData = Encoding.UTF8.GetBytes(json);
 Stream reqStream = req.GetRequestStream();
 reqStream.Write(postData, 0, postData.Length);
 reqStream.Close();

HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();
var code = string.IsNullOrEmpty(rsp.CharacterSet) || "ISO-8859-1".Equals(rsp.CharacterSet, StringComparison.CurrentCultureIgnoreCase) ? "UTF-8" : rsp.CharacterSet;
Encoding encoding = Encoding.GetEncoding(code);
string response = GetResponseAsString(rsp, encoding);

Result rs = JsonConvert.DeserializeObject<Result>(response);
//对方返回的结果
if (rs.code == "200")
{

//记录到日志
    Log(rs.msg + ":" + json);
}
else
{
    throw new System.Exception(rs.msg);
}

}

4、日志函数

private void Log(string LogStr)
{
    //Trace.WriteLine(LogStr);
    //return;
    StreamWriter sw = null;
    try
    {
        LogStr = DateTime.Now.ToLocalTime().ToString() + "\n" + LogStr;
        sw = new StreamWriter("C:\\PLMLoggerData\\DangAnData" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", true);
        sw.WriteLine(LogStr);
    }
    catch
    {
    }
    finally
    {
        if (sw != null)
        {
            sw.Close();
        }
    }
}

相关文章:

  • 基于Spring和MybatisPlus下的Oracle转mysql语句语法适配修改
  • 使用Aqua进行WebUI测试(Pytest)——介绍篇(附汉化教程)
  • 合并区间【leetcode】
  • 随笔(1)将 CSV 文件导入 MySQL 时出现中文乱码问题解决方案
  • 【物理教学】不准确温度计图像代码分享
  • 为什么越来越多的人选择开放式耳机?平价高品质蓝牙耳机推荐
  • Django form.save 方法的详细分析
  • 雅特力初步环境准备
  • AI编程工具合集
  • SAP MM模块与FI模块集成之科目配置
  • 学习记录——day42 C++ Lambda表达式
  • C#中的PropertyInfo
  • C++语法基础(一)
  • Oracle(ORA-00210、ORA-00202)控制文件错误
  • Codeforces Round 968 (Div. 2)
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • avalon2.2的VM生成过程
  • CentOS 7 修改主机名
  • crontab执行失败的多种原因
  • DOM的那些事
  • ES6 学习笔记(一)let,const和解构赋值
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Go 语言编译器的 //go: 详解
  • gops —— Go 程序诊断分析工具
  • HTTP请求重发
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • SpingCloudBus整合RabbitMQ
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • V4L2视频输入框架概述
  • vue自定义指令实现v-tap插件
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 初探 Vue 生命周期和钩子函数
  • 当SetTimeout遇到了字符串
  • 欢迎参加第二届中国游戏开发者大会
  • 模型微调
  • 强力优化Rancher k8s中国区的使用体验
  • 如何利用MongoDB打造TOP榜小程序
  • 鱼骨图 - 如何绘制?
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 阿里云ACE认证之理解CDN技术
  • ​flutter 代码混淆
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​一些不规范的GTID使用场景
  • #if和#ifdef区别
  • #Linux(Source Insight安装及工程建立)
  • $.ajax()方法详解
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (HAL库版)freeRTOS移植STMF103
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (Qt) 默认QtWidget应用包含什么?
  • (rabbitmq的高级特性)消息可靠性
  • (八十八)VFL语言初步 - 实现布局