备份一个http/https请求,用的比较多的POST json数据
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数据的更多相关文章
- 解决Ajax请求后台Servlet接口拿不到JSON数据问题
前端Ajax请求代码如下: window.onload=function() { var url='http://127.0.0.1:8080/testpj/ErrorlogServlet'; $.a ...
- Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据、Ajax文件上传)
form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multi ...
- 浏览器给openresty连接发送参数请求,查询数据库,并返回json数据
nginx.conf配置文件 #user nobody; worker_processes 1; error_log logs/error.log; #error_log logs/error.log ...
- C# 请求Web Api 接口,返回的json数据直接反序列化为实体类
须要的引用的dll类: Newtonsoft.Json.dll.System.Net.Http.dll.System.Net.Http.Formatting.dll Web Api接口为GET形式: ...
- [Swift通天遁地]四、网络和线程-(5)解析网络请求数据:String(字符串)、Data(二进制数据)和JSON数据
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- AJAX 跨域请求 - JSONP获取JSON数据
Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示 ...
- AJAX 跨域请求的解决办法:使用 JSONP获取JSON数据
由于受到浏览器的限制,ajax不允许跨域通信.如果尝试从不同的域请求数据,会出现安全错误.如果能控制数据驻留的远程服务器并且每个请求都前往同一域,就可以避免这些安全错误.但是,如果仅停留在自己的服务器 ...
- 【转】AJAX 跨域请求 - JSONP获取JSON数据
来源:http://justcoding.iteye.com/blog/1366102/ Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流 ...
- 我的Android进阶之旅------>Android关于HttpsURLConnection一个忽略Https证书是否正确的Https请求工具类
下面是一个Android HttpsURLConnection忽略Https证书是否正确的Https请求工具类,不需要验证服务器端证书是否正确,也不需要验证服务器证书中的域名是否有效. (PS:建议下 ...
- 使用curl进行https请求
简单示例: /** * @param $url * @return array * 进行https请求,并且遇到location进行跳转 */ function https($url){ $resul ...
随机推荐
- 【忍者算法】从扫雷游戏到矩阵操作:探索矩阵置零问题|LeetCode 73 矩阵置零
从扫雷游戏到矩阵操作:探索矩阵置零问题 生活中的算法 想象你在玩扫雷游戏,当你点到一个地雷时,不仅这个格子会被标记,与它同行同列的格子也都会受到影响.或者想象一个办公室的座位表,如果某个位置发现了感染 ...
- Luogu P2292 HNOI2004 L 语言 题解 [ 紫 ] [ AC 自动机 ] [ 状压 dp ]
L 语言:很好的一道状压 dp 题. 思路 看到这题,首先可以想到一个很暴力的 dp,设 \(dp_i\) 表示考虑到第 \(i\) 位能否被理解,暴力匹配字符串转移即可. 第一个优化也很显然,暴力匹 ...
- Common.Logging+log4net搭建项目日志框架
原文参考链接:https://www.cnblogs.com/heys/p/5787123.html Common.Logging+(log4net/NLog/) common logging是一 ...
- QT5笔记:7. 自定义类、自定义信号及类的元对象信息
自定义的QPerson类,需要继承 QObject类 qperson.h头文件 #ifndef QPERSON_H #define QPERSON_H #include <QObject> ...
- 使用Bioaider进行本地blast
系统环境为windows11 1. 下载blast程序 https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ 双击安装,记住自己的 ...
- Linux - 搭建一套Apache大数据集群
一.服务器操作系统 主机名 操作系统 node01 Centos 7.9 node02 Centos 7.9 node03 Centot 7.9 二.大数据服务版本 服务 版本 下载 JDK jdk- ...
- Redmine 中,如何新增一个字段名,比如"模块名称":
why: 用于编写测试报告时能够直接根据模块名称进行统计,不对excel 表格进行自定义拆分-----规范性 登录到 Redmine 平台,并进入你的项目页面. 在项目页面上方的导航栏中,点击 &qu ...
- python二级 计算生态
生态地址: https://pypi.python.org/pypi 常用函数:
- 使用makefile帮助GO项目开发
使用makefile可以快捷管理和构建自己的go项目, 适用于linux远程开发等环境. 提供一个基础的makefile供开发使用. 大部分是针对常用指令的二次封装 Makefile 先展示文件内容, ...
- 地球OL攻略 —— 某应届生求职总结
某应届生的苦逼求职总结 1.自我介绍,阐述一下自己过去的情况 2.目前的就业情况以及从事的就业方向 3.你在面试的时候遇到什么困难?是怎么帮忙解决的 4.当初为什么会选择选择这一行? 5.分享一下学习 ...