using Newtonsoft.Json.Linq;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using Newtonsoft.Json;
using System.IO;
using System.Net;
private static readonly string DefaultUserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36";
// private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
//{
// return true; //总是接受
// }
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return true;
}
public static string Base64Encode(Encoding encodeType, string source)
{
string encode = string.Empty;
byte[] bytes = encodeType.GetBytes(source);
try
{
encode = Convert.ToBase64String(bytes);
}
catch
{
encode = source;
}
return encode;
}
public static string PostToYS(string access_token, string account, string year, string ystype)
{
try
{
string returnjsonlist = "";
var dataset = HLYSetCode.FindAll("", "", "", 0, 0);
string url = System.Configuration.ConfigurationManager.AppSettings["HLYGetYSURL"];
JObject patientinfo = new JObject();
JObject patientinfolist = new JObject();
JArray queryLineList1 = new JArray();
JArray queryLineList2 = new JArray();
JArray queryParameterList1 = new JArray();
JArray queryParameterList2 = new JArray();
JObject user = new JObject();
JObject user1 = new JObject();
JObject userB = new JObject();
JObject userB1 = new JObject();
user1["parameterValueCode"] = account + ystype;
queryParameterList1.Add(user1);
user["parameterType"] = "BGT_RULE_PARAMETER_BUDGET";
user["parameterCode"] = "BUDGET_ITEM";
//user["isAll"] = "false";
//user["parameterType"] = dataset[0].ParameterType;
//user["parameterCode"] = dataset[0].ParameterCode;
user["isAll"] = dataset[0].IsAll;
user["queryParameterList"] = queryParameterList1;
queryLineList1.Add(user);
userB1["parameterValueCode"] = ystype;
queryParameterList2.Add(userB1);
userB["parameterType"] = "BGT_RULE_PARAMETER_DIM";
userB["parameterCode"] = "2";
userB["isAll"] = "false";
userB["queryParameterList"] = queryParameterList2;
queryLineList1.Add(userB);
//patientinfo["companyCode"] = "001";
//patientinfo["organizationCode"] = "01";
//patientinfo["scenarioCode"] = "1";
//patientinfo["versionCode"] = "1";
//patientinfo["structureCode"] = "777";
//patientinfo["conditionCode"] = "001";
//patientinfo["conditionName"] = "申万菱信控制策略";
//patientinfo["periodSummaryFlag"] = true;
//patientinfo["amountQuarterFlag"] = "AMOUNT";
patientinfo["companyCode"] = dataset[0].CompanyCode;
patientinfo["organizationCode"] = dataset[0].OrganizationCode;
patientinfo["scenarioCode"] = dataset[0].ScenarioCode;
patientinfo["versionCode"] = dataset[0].VersionCode;
patientinfo["structureCode"] = dataset[0].StructureCode;
patientinfo["conditionCode"] = dataset[0].ConditionCode;
patientinfo["conditionName"] = dataset[0].ConditionName;
patientinfo["periodSummaryFlag"] = dataset[0].PeriodSummaryFlag;
patientinfo["amountQuarterFlag"] = dataset[0].AmountQuarterFlag;
patientinfo["yearLimit"] = year;
patientinfo["periodLowerLimit"] = year + "-01";
patientinfo["periodUpperLimit"] = year + "-12";
//patientinfo["versionNumber"] = 2;
patientinfo["versionNumber"] = Convert.ToInt32(dataset[0].VersionNumber);
patientinfo["queryLineList"] = queryLineList1;
//上面拼接json格式参数
string body = JsonConvert.SerializeObject(patientinfo);
//eg: 发送Url需要的格式:sendData={"ids":[123],"Name":小黑}
HttpWebRequest request = null;
CookieContainer cookie = new CookieContainer();
ServicePointManager.Expect100Continue = false; //2022-12-05调接口时突然报500错误,加了这句就可以了。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;//证书,.net framework4.5以上
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
ServicePointManager.CheckCertificateRevocationList = true;
ServicePointManager.DefaultConnectionLimit = 100;
request = WebRequest.Create(url) as HttpWebRequest;
request.CookieContainer = cookie;
request.ProtocolVersion = HttpVersion.Version11;
request.Method = "POST";
request.ContentType = "application/json";
request.UserAgent = DefaultUserAgent;
request.KeepAlive = true;
request.Headers["Authorization"] = "Bearer " + access_token;
byte[] byteData = Encoding.UTF8.GetBytes(body);
int length = byteData.Length;
request.ContentLength = length;
using (Stream stream = request.GetRequestStream())
{
stream.Write(byteData, 0, byteData.Length);
}
var response = (HttpWebResponse)request.GetResponse();
using (StreamReader st = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")))
{
returnjsonlist = st.ReadToEnd().ToString();
// return st.ReadToEnd().ToString();
JObject jo = (JObject)JsonConvert.DeserializeObject(returnjsonlist);
access_token = jo["message"].ToString();
}
return returnjsonlist;
}
catch (Exception ex)
{
string err = ex.Message;
return string.Empty;
}
}
相关推荐
C# HttpClient POST JSON实战:从协议原理到上位机接口对接避坑
HTTP POST是接口联调中最基础也最容易出错的环节,尤其是在C#上位机开发场景。理解POST请求本质上是传输文本流,JSON只是字符串的组织规则,才能正确处理Content-Type、UTF-8编码与请求体构造。HttpClient作为主流类库,其连接复用、超时控制与异步模型直接影响高并发上报稳定性。通过强类型序列化或JObject动态构造JSON,配合明确的鉴权Header与重试策略,可有效避免乱码、连接中断、反序列化失败等典型问题。从请求构造到响应解析,结合真实避坑案例与调试技巧,为C#开发者提供一
C# 使用Http Post方式发送Json数据,只需二步。
C# 使用Http Post方式发送Json数据,只需二步。
C#调用POST接口实战:从HttpClient到超时与异常排查
在前后端分离与Web API盛行的今天,HTTP接口调用已成为软件开发的基础技能,而POST请求则承载着登录、下单、文件上传等核心业务场景。理解POST的本质——请求头定义格式、请求体传递数据、响应码反映结果——是高效对接接口的前提。C#作为桌面应用与上位机开发的主流语言,借助HttpClient可以优雅地完成这些交互。然而,从设置正确的Content-Type到处理Token鉴权,从超时控制到避免Socket连接耗尽,每一步都隐藏着影响稳定性的细节。面对Connection reset、请求超时、中文乱码
json复杂对象c语言,c#处理3种json数据的实例
网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋友。一、C#处理简单json数据json数据:{"result":"0","res_info":"ok","queryorder_info":"info"}我这里是以jsonmy1.txt文件的形式保...
C# HTTP POST JSON实战:Content-Type与幂等重试
HTTP POST 与 JSON 数据交互的核心不只是发送请求,而是围绕 Content-Type 媒体类型、字段命名映射和 JSON 序列化契约建立可验证的传输链路。HttpClient 生命周期、超时拆解与幂等重试决定连接复用效率和重复提交风险,直接影响第三方接口对接、订单查询及后台服务联调的稳定性。工程上通过统一客户端封装、业务码解析、日志脱敏与抓包回放校验,可减少 415/400 和“本地通、线上不通”类问题,让 C# JSON POST 从能跑到可维护、可排查。
C# HTTP POST JSON实战:从HttpClient到连接复用与避坑指南
HTTP POST与JSON是系统间数据交互的主流方式。其原理是将业务对象序列化为JSON文本,通过POST请求体发送,服务端解析请求后返回JSON响应,实现跨语言、跨平台的数据交换。这种交互模式广泛应用于MES系统对接、设备扭矩数据上报、生产管理集成等工业与物联网场景。C#开发者在实现HTTP POST JSON时,需要关注HttpClient的正确使用、Content-Type与字符编码设置、JSON序列化方案选型,以及连接复用和超时重试等工程细节。常见问题包括本地调试正常但部署后超时、中文乱码、服务端
[转]C#中POST数据和接收的几种方式
POST方式提交数据,一种众所周知的方式: html页面中使用form表单提交,接收方式,使用Request.Form[""]或Request.QueryString[""]来获取。 这里介绍另外一种POST方式和接收方式,就是将整个数据作为加入到数据流中提交和接收 接收方式: Stream s = System.Web.HttpContext.Current.Requ...
C# http post jason简单示例
C# http post json简单示例,还有开源的Newtonsoft.Json
C#发送Get、Post请求,复杂参数格式(数组,对象,JSON,字典等)
发送HTTP请求时一般需要携带一些参数,简单的参数可以直接放到url中,但是一些复杂或者参数过多的情况下不适合放在url中,需要我们自己按标准组装参数格式,如下: using (var httpClient = new HttpClient()) { var url2 = new Uri("http://xxxxxx"); var body = new FormUrlEncodedContent(new Dictionary<
C#基于Gecko 52自用浏览器,chrome风格选项卡多标签浏览器
自用浏览器基于Gecko52内核写的,基于Winform开发,仿Chrome式多选项卡,一个选项卡独立工具栏和显示网页模块,不是传统一个工具栏下面多个选项卡,可以弹出下载保存框,文件下载完有文件路径,是否打开文件提示,右键菜单全汉化,添加了垃圾回收处理的机制,不会产生Cache,多线程编译,没有黑屏现象,界面可以看看我的博客
Unity集成抖音小游戏:从IL2CPP配置到SDK接入全流程解析
本文详细解析了使用Unity开发抖音小游戏的完整流程。从关键的IL2CPP编译后端配置、PlayerSettings设置,到StarkSDK的接入与资源优化(如AutoStreaming),再到激励视频广告、录屏分享等核心功能的代码实现,提供了从环境准备到打包上传的全方位实战指南,帮助开发者高效完成技术适配。
C# .Net 调用Java接口 Java api Post Json 格式字符串
用到的命名空间 using System.Net; 方法一: //url:POST请求地址 //postData:json格式的请求报文,例如:{"key1":"value1","key2":"value2"} public static string PostUrl(string url, string postData) ...
OpenVox 8FXO板卡驱动安装记录
OpenVox A800P和A1200P的板卡驱动安装及问题解决方法
c# Http Post访问接口方式
一、json格式数据提交返回 提交和返回数据都为json格式 参数提交方式:application/json;charset=UTF-8 统一采用UTF-8字符编码 public string Post(string Url, string jsonParas) { string strURL = Url; //创建一个H...
树莓派4B学习笔记(5)—— 来个GPIO操作吧
一. GPIO库介绍 对于树莓派,现在有wiringPi,BCM2835,python三种库可以使用。 python 开发语言:python 简单介绍:树莓派官方资料中推荐且容易上手,毫无疑问的说python非常适合树莓派,树莓派也非常适合python。 wiring PI 开发语言:C、C++ 简单介绍:功能很强大,适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiring Pi的API函数和arduino非常相似,且作者也给出了很多示例代码,这也使得它广受欢迎。
LabVIEW通过ActiveX控件实现与三菱FX5U PLC的高效数据交互
本文详细介绍了如何利用LabVIEW的ActiveX控件,通过三菱官方MX Component工具包实现与FX5U PLC的高效数据交互。文章从环境配置、控件插入到实战代码解析,系统讲解了连接建立、数据读写及资源释放的全流程,并提供了关键的避坑指南,帮助工程师快速构建稳定可靠的上位机通讯系统。
C#模拟HTTP请求Post JSON
因为接口是http的,我们站点是https的,不能https直接ajax请求http,所以需要在SharePoint中开发一个模拟请求Ajax的Service,分享一下。 var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://url"); httpWebRequest.ContentType = "applicatio...
ParaView: GUI 轴网格
ParaView: GUI 轴网格
bcb6通过https接口post数据_PHP开发APP接口实现
最近一段时间一直在做APP接口,总结一下APP接口开发以来的心得,与大家分享:1. 客户端/服务器接口请求流程:安卓/IOS客户端 –> PHP接口 –> 服务器端 –> 数据处理 –> 返回值(客户端接收并处理)APP的通信方式:客户端 (接口地址:http://app.com/api.php?format=xml/json) 客户端APP ------------...
C++(Qt)软件调试---内存分析工具Heob(26)
绝对最全面最详细的Heob使用说明。(图文并茂) 绝大部分的文章都说Heob是一个内存泄漏分析工具,其实Heob只是内存泄漏分析功能比较突出,实际上Heob可以分析很多内存问题。 Heob是一个Windows下检测缓冲区溢出(野指针、空指针、内存越界、重复释放、异常捕获等)和内存泄漏的工具,集成到Qt Creator中,功能强大,简单容易上手。
MATLAB基础应用精讲-【数模应用】PPO算法(附python代码实现)(二)
表示为状态转移概率和动作选择概率的乘积,因为状态和动作决定轨迹。
C# 调用http和https请求rest接口通用操作类
之前在做C#调用Restful接口的时候,因为时间比较匆忙,一直没有把这个类好好整理一下。最近一方面对于ContentType的整理感觉很不方便,另一方面对于Restful接口http和https调用使用不同的类感觉很不方便,发现调用http和https只要用一句话就可以解决了。于是,整理一个通用类,记录下来,方便以后使用。 感谢网上各路大神提供的资料。 代码如下: using Sy
使用强化学习快速让AI学会玩贪食蛇游戏(轻量级二十分钟训练+代码)
如何让AI玩会贪食蛇,甚至比你厉害概述构建问题(强化学习求解的一般步骤)环境动作定义状态定义奖励设计训练奖励值收敛图效果代码 概述 所用技术:强化学习(Deep Reinforcement Learning),属于一种无监督学习,利用奖励rewardrewardreward教会智能体AgentAgentAgent在合适的场景做合适的决策。 采用算法:试过两种算法D3QN和离散版本的PPO算法,最终采用离散版本PPO算法+GAE(PPO是我用过的性能最好的算法之一) 编程语言与深度学习框架:Python3.
.net 后台以post方式调用微信公众平台接口
1 public class Fresult 2 { 3 public int errcode { get; set; } 4 public string errmsg { get; set; } 5 public string msgid { get; set; } 6 } 1 public static Fr...
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
c#-post访问链接提取json数据
本文使用.net core后端接口程序,实现向一个接口提交一个json数据,再从接口取到一个json数据。
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
C# 创建json传输格式的http请求
publicstaticstringPostRequestTest(stringcontent,stringurl,stringcontentType="application/json") { try { varmemStream=newMemoryStream(); varcc...
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
308



被折叠的 条评论
为什么被折叠?



