备份一个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 ...
随机推荐
- 二次剩余和 Cipolla 算法
首先是素数模同余方程的相关理论. 下设 $p\in $ 是质数,\(f(x)=\sum_{i=0}^n a_ix^i\),\(x\in \Z_p,p\not\mid a_n\). 引理 1 如果 \( ...
- DeepSeek模型技术动态引行业关注,企业生产系统API迁移需审慎评估
在当今数字化浪潮中,人工智能技术迅猛发展,各类模型如雨后春笋般涌现,而 DeepSeek 模型凭借其独特的优势,在人工智能领域迅速崭露头角,成为备受瞩目的新星. DeepSeek 模型由杭州深度求索人 ...
- .Net对接Java接口加密不通过?
前言 相信又不少小伙伴在对接第三方接口时遇到过这种情况:参数.排序.加密方式都按照接口文档进行处理了,可就是签名不通过,然后开始怀疑是不是参数漏了?参与加密的参数不对?还是加密方式有问题?最后一顿 ...
- 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
关注公众号回复1 获取一线.总监.高管<管理秘籍> 书接上文:DeepSeek怎么突然就比肩GPT了? 如前所述,应用层AI开发压根不会去刻意关注大模型底层实现,多数时候也关注不了. 但我 ...
- Docker容器访问挂载文件权限问题
问题描述 在使用docker-compose部署项目时,yaml文件如下: version: '3' services: purchasing-contract-consumer: image: my ...
- 当openlayers的地图所在的div的尺寸发生变化后,鼠标滚轮缩放地图发生偏移问题以及地图变形问题解决
当地图的尺寸发生变化后,要调用map.updateSize()方法,强制使openlayers重新计算地图视口 updateSize() Force a recalculation of the ma ...
- manim边学边做--相机Camera简介
在Manim中,Camera是实现动画效果的重要工具之一. 它就像我们观察动画的 眼睛,通过控制相机的位置.角度和视野,可以创造出丰富多样的视觉效果. Manim社区版本中提供了多种Camera类型, ...
- Typescript通用帮助类,格式化日期时间等
/** * 格式化日期选项 */ export class DateFormatOption { "M+": number;//月 "d+": number;/ ...
- 机器学习 | 强化学习(4) | 无模型控制(Model-Free Control)
无模型控制(Model-Free Control) 无模型预测概论 上一节课: 无模型预测 用于估计一个未知马尔科夫决策过程的价值函数 这节课 无模型控制 最优化一个未知马尔科夫决策过程的价值函数 一 ...
- layui 自动触发radio和select
layui对radio和select做了包装,正常用jquery选中后使用trigger不起作用. 那么,怎么让其自动触发呢? 对radio来说,必须在$选中后.next('.layui-form-r ...