var data = new object[] { new { sn = SN, mac = Mac } };

var jobj = await Task.Run(() =>
{
try
{
                    using (HttpClient client = new HttpClient())
{
var url = Helper.GetAppSettings("SubmitAddress");
var json = Newtonsoft.Json.JsonConvert.SerializeObject(data);
client.Timeout = TimeSpan.FromSeconds(5);
               /*
                form表单              

                var form = new MultipartFormDataContent();
                form.Add(new StringContent(file.Name), "dataId");
                form.Add(new StringContent("DEFAULT_GROUP"), "group");
                form.Add(new StringContent(str), "content");

               */

               var result = client.PostAsync(url, new StringContent(json, Encoding.UTF8, "application/json")).Result;
var ack = result.Content.ReadAsStringAsync().Result;

               result.Content.Dispose();
               result.Dispose();

return JObject.Parse(ack);

                    }
}
catch (Exception ex)
{
return JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(new
{
code = 500,
msg = $"服务器错误,请核查数据提交地址,配置文件中“SubmitAddress”是否正确!\r\n{ex.Message}"
}));
}
});
loadCtrl.IsOpen = false; var code = jobj["code"]?.Value<int>();
var msg = jobj["msg"]?.Value<string>();

带证书的情况

// https 忽略证书
WebRequestHandler handler = new WebRequestHandler();
handler.ServerCertificateValidationCallback = delegate { return true; };
HttpClient client = new HttpClient(handler);

string msg = string.Empty, webToken = string.Empty;
using (HttpClient client = new HttpClient(handler))
{
try
{
var url = "https://10.6.30.156/api/common/v1/user/login?username=nms&password=nms@a12345";
client.Timeout = TimeSpan.FromSeconds(10);
//MultipartFormDataContent content = new MultipartFormDataContent();
//content.Add(new StringContent("admin"), "username");
//content.Add(new StringContent("Dccs12345."), "password");
var result = client.PostAsync(url, null).Result;
if (result.StatusCode == System.Net.HttpStatusCode.OK)
{
try
{
var ack = result.Content.ReadAsStringAsync().Result;
result.Content.Dispose();
result.Dispose(); var jobj = JObject.Parse(ack);
if (jobj.Value<bool>("success"))
{
var jresult = jobj.Value<JObject>("result");
webToken = jresult.Value<string>("webToken");
}
else
{
msg = $"{jobj.Value<string>("msg")}";
}
}
catch (Exception ex)
{
msg = $"数据解析异常,{ex.Message}";
}
}
else
{
msg = $"远程服务器状态响应不正确,{result.StatusCode}";
} }
catch (Exception ex)
{
msg = $"访问异常,{ex.Message}";
}
}

备份一个http/https请求,用的比较多的POST json数据的更多相关文章

  1. 解决Ajax请求后台Servlet接口拿不到JSON数据问题

    前端Ajax请求代码如下: window.onload=function() { var url='http://127.0.0.1:8080/testpj/ErrorlogServlet'; $.a ...

  2. Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据、Ajax文件上传)

    form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multi ...

  3. 浏览器给openresty连接发送参数请求,查询数据库,并返回json数据

    nginx.conf配置文件 #user nobody; worker_processes 1; error_log logs/error.log; #error_log logs/error.log ...

  4. C# 请求Web Api 接口,返回的json数据直接反序列化为实体类

    须要的引用的dll类: Newtonsoft.Json.dll.System.Net.Http.dll.System.Net.Http.Formatting.dll Web Api接口为GET形式: ...

  5. [Swift通天遁地]四、网络和线程-(5)解析网络请求数据:String(字符串)、Data(二进制数据)和JSON数据

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. AJAX 跨域请求 - JSONP获取JSON数据

    Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示 ...

  7. AJAX 跨域请求的解决办法:使用 JSONP获取JSON数据

    由于受到浏览器的限制,ajax不允许跨域通信.如果尝试从不同的域请求数据,会出现安全错误.如果能控制数据驻留的远程服务器并且每个请求都前往同一域,就可以避免这些安全错误.但是,如果仅停留在自己的服务器 ...

  8. 【转】AJAX 跨域请求 - JSONP获取JSON数据

    来源:http://justcoding.iteye.com/blog/1366102/ Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流 ...

  9. 我的Android进阶之旅------>Android关于HttpsURLConnection一个忽略Https证书是否正确的Https请求工具类

    下面是一个Android HttpsURLConnection忽略Https证书是否正确的Https请求工具类,不需要验证服务器端证书是否正确,也不需要验证服务器证书中的域名是否有效. (PS:建议下 ...

  10. 使用curl进行https请求

    简单示例: /** * @param $url * @return array * 进行https请求,并且遇到location进行跳转 */ function https($url){ $resul ...

随机推荐

  1. 【忍者算法】从扫雷游戏到矩阵操作:探索矩阵置零问题|LeetCode 73 矩阵置零

    从扫雷游戏到矩阵操作:探索矩阵置零问题 生活中的算法 想象你在玩扫雷游戏,当你点到一个地雷时,不仅这个格子会被标记,与它同行同列的格子也都会受到影响.或者想象一个办公室的座位表,如果某个位置发现了感染 ...

  2. Luogu P2292 HNOI2004 L 语言 题解 [ 紫 ] [ AC 自动机 ] [ 状压 dp ]

    L 语言:很好的一道状压 dp 题. 思路 看到这题,首先可以想到一个很暴力的 dp,设 \(dp_i\) 表示考虑到第 \(i\) 位能否被理解,暴力匹配字符串转移即可. 第一个优化也很显然,暴力匹 ...

  3. Common.Logging+log4net搭建项目日志框架

    原文参考链接:https://www.cnblogs.com/heys/p/5787123.html   Common.Logging+(log4net/NLog/) common logging是一 ...

  4. QT5笔记:7. 自定义类、自定义信号及类的元对象信息

    自定义的QPerson类,需要继承 QObject类 qperson.h头文件 #ifndef QPERSON_H #define QPERSON_H #include <QObject> ...

  5. 使用Bioaider进行本地blast

    系统环境为windows11 1. 下载blast程序 https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ 双击安装,记住自己的 ...

  6. Linux - 搭建一套Apache大数据集群

    一.服务器操作系统 主机名 操作系统 node01 Centos 7.9 node02 Centos 7.9 node03 Centot 7.9 二.大数据服务版本 服务 版本 下载 JDK jdk- ...

  7. Redmine 中,如何新增一个字段名,比如"模块名称":

    why: 用于编写测试报告时能够直接根据模块名称进行统计,不对excel 表格进行自定义拆分-----规范性 登录到 Redmine 平台,并进入你的项目页面. 在项目页面上方的导航栏中,点击 &qu ...

  8. python二级 计算生态

    生态地址: https://pypi.python.org/pypi 常用函数:

  9. 使用makefile帮助GO项目开发

    使用makefile可以快捷管理和构建自己的go项目, 适用于linux远程开发等环境. 提供一个基础的makefile供开发使用. 大部分是针对常用指令的二次封装 Makefile 先展示文件内容, ...

  10. 地球OL攻略 —— 某应届生求职总结

    某应届生的苦逼求职总结 1.自我介绍,阐述一下自己过去的情况 2.目前的就业情况以及从事的就业方向 3.你在面试的时候遇到什么困难?是怎么帮忙解决的 4.当初为什么会选择选择这一行? 5.分享一下学习 ...