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. 手把手教你部署 DeepSeek 本地模型

    本文目标:部署 DeepSeek 本地模型,并通过 Ollama 提供 API 支持,Chatbox 提供 UI 界面. 原则:不搞那些高深的玩法,让小白也能理解并真正的上手实践. 1.下载Ollam ...

  2. Windows11本地部署DeepSeek加速

    技术背景 在上一篇文章中我们介绍了在Ubuntu Linux操作系统上部署了一个DeepSeek-R1:14B,再通过其他电脑远程调用模型进行生成的方法.这里我们介绍一下Windows11安装Olla ...

  3. Kyuubi支持Iceberg配置

    一.简述 Kyuubi调用Spark来查询iceberg表,修改Spark配置信息即可. 二.服务配置 1.上传jar包到Kyuubi server节点 可以选择emr spark组件后,按照配置组( ...

  4. 清华博士后的DeepSeek使用手册,104页,真的是太厉害了!(免费领取源文件)

    <DeepSeek从入门到精通2025>是由清华大学元宇宙文化实验室的余梦珑博士后及其团队撰写.文档的核心内容围绕DeepSeek的技术特点.应用场景.使用方法以及如何通过提示语设计提升A ...

  5. WPF 线程处理

    参考链接:https://docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-3.5/ms771750(v=vs.90)

  6. Vulnhub-Hackme

    一.靶机搭建 选择扫描虚拟机 选择路径即可 二.信息收集 靶机信息 Name: hackme: 1 Date release: 18 Jul 2019 难度:初级,目标是通过web漏洞获得有限的权限访 ...

  7. xxe学习笔记

    什么是xxe XXE(XML External Entity Injection)全称为XML外部实体注入,由于程序在解析输入的XML数据时,解析了攻击者伪造的外部实体而产生的.例如PHP中的simp ...

  8. Keil中设置显示空白符,并将Tab键使用4个空格代替

    前言 Keil 的默认设置是没有将 Tab 键使用空格代替的,不同的文本编辑器对 Tab 键所占的空格数不同,有占 2 个空格的,也有占 4 个空格的,这就导致同样的代码在不同的编辑器中缩进不同,虽不 ...

  9. Mac下打开进入/usr/local等隐藏目录

    教程 Mac下/usr/local目录默认是对于Finder是隐藏,如果需要到/usr/local下去,打开Finder,然后使用command+shift+G,在弹出的目录中填写/usr/local ...

  10. V8引擎静态库及其调用方法

    V8引擎静态库下载地址由于包含了x86和x64的debug和release静态库,所以资源较大,需要耐心下载. 案例编译工具:VS2019 v8开头的即为V8引擎静态库(附送其它开源静态库libuv. ...