/// <summary>
/// 获取版本更新信息 GET
/// </summary>
/// <param name="softwareKey">软件的标识</param>
/// <returns></returns>
public static ResponseResult<UpdateInfo> GetUpdateInfo(string softwareKey)
{
ResponseResult<UpdateInfo> updateInfo = new ResponseResult<UpdateInfo>();
if (!IsConnectInternet())
{
updateInfo.statusCode = 404;
return updateInfo;
}
string updateInfoStr = null; #if DEBUG
Uri address = new Uri("http://xxxx/Api/UpdateCenter/GetUpdateInfo?softwareKey=" + softwareKey); #else
Uri address = new Uri("http://xxxx/Api/UpdateCenter/GetUpdateInfo?softwareKey=" + softwareKey);
#endif
try
{ // 使用httpwebrequest调用api接口
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(address);
httpWebRequest.Method = "GET"; HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
updateInfoStr = streamReader.ReadToEnd(); if (!string.IsNullOrWhiteSpace(updateInfoStr))
{
updateInfo = JsonConvert.DeserializeObject<ResponseResult<UpdateInfo>>(updateInfoStr);
return updateInfo;
}
}
catch (Exception ex)
{
}
return null;
}
/// <summary>
/// 报送版本号与序列号 POST
/// </summary>
public static void PostVersionSerial()
{
Thread thread = new Thread(() =>
{
try
{
string result = "";
string JsonStr ="'"+SystemConfigBLL.GetSingle("CompanyInfo").Value+"'";
#if DEBUG
Uri uri = new Uri("http://xxxxx/Api/Customer/Report");
#else
Uri uri = new Uri("http://xxxxx/Api/Customer/Report");
#endif

//向接口发送数据 并得到返回值
HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(uri);
objRequest.Method = "POST";
objRequest.ContentType = "application/json";
byte[] byteData = Encoding.UTF8.GetBytes(JsonStr);
objRequest.ContentLength = byteData.Length;
objRequest.GetRequestStream().Write(byteData, 0, byteData.Length); HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
{
result = sr.ReadToEnd();
sr.Close();
} ResponseResults<CustomerCode> responseResults = JsonConvert.DeserializeObject<ResponseResults<CustomerCode>>(result); if (!string.IsNullOrEmpty(responseResults.content.code))
{
if (string.IsNullOrEmpty(SystemConfigBLL.GetSingle("CustomerCode").Value))
{
int res = SystemConfigBLL.Update("CustomerCode", responseResults.content.code);
}
}
}
catch
{ } });
thread.IsBackground = true;
thread.Start();
}

基于HttpWebRequest,HttpWebResponse发起请求的更多相关文章

  1. python 爬虫 基于requests模块发起ajax的post请求

    基于requests模块发起ajax的post请求 需求:爬取肯德基餐厅查询http://www.kfc.com.cn/kfccda/index.aspx中指定某个城市地点的餐厅数据 点击肯德基餐厅查 ...

  2. python 爬虫 基于requests模块发起ajax的get请求

    基于requests模块发起ajax的get请求 需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据 用抓包工具捉取 使用ajax加载页面的请求 鼠标往下 ...

  3. 【转】asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端

    原文地址:http://docode.top/Article/Detail/10002 目录: 1.Http协议上传文件(以图片为例)请求报文体内容格式 2.完整版HttpWebRequest模拟上传 ...

  4. HttpWebRequest,HttpWebResponse的用法和用途

    1.用途:HettpWebRequest,HettpWebResponse用途和webServers的作用差不多,都是得到一个页面传过来的值.HttpWebRequest 2.用法:--------- ...

  5. C#获取网页内容 (WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)

    获取网页数据有很多种方式.在这里主要讲述通过WebClient.WebBrowser和HttpWebRequest/HttpWebResponse三种方式获取网页内容. 这里获取的是包括网页的所有信息 ...

  6. Elasticsearch High Level Rest Client 发起请求的过程分析

    本文讨论的是JAVA High Level Rest Client向ElasticSearch6.3.2发送请求(index操作.update.delete--)的一个详细过程的理解,主要涉及到Res ...

  7. Elasticsearch 基于 URL 的搜索请求

    背景 Elasticsearch 不像关系型数据库,没有简易的 SQL 用来查询数据,只能通过调用 RESTful API 实现查询.大体上查询分为两种,基于 URL 的和基于请求主体的.基于 URL ...

  8. C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)

    一.通过WebClient获取网页内容 这是一种很简单的获取方式,当然,其它的获取方法也很简单.在这里首先要说明的是,如果为了实际项目的效率考虑,需要考虑在函数中分配一个内存区域.大概写法如下 //M ...

  9. C#实现通过HttpWebRequest发送POST请求实现网站自动登陆

    C#实现通过HttpWebRequest发送POST请求实现网站自动登陆   怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数 ...

  10. Vue2使用Axios发起请求教程详细

    当你看到该文章时希望你已知晓什么是跨域请求以及跨域请求的处理,本文不会赘述 本文后台基于Springboot2.3进行搭建,Controller中不会写任何业务逻辑仅用于配合前端调试 Controll ...

随机推荐

  1. Zabbix与乐维监控对比分析(八)——其他功能篇

    前面我们详细介绍了Zabbix与乐维监控的架构与性能.Agent管理.自动发现.权限管理.对象管理.告警管理.可视化.图形图表及网络功能方面的对比分析,接下来我们将对二者其他功能进行对比分析. 本篇是 ...

  2. 01-逻辑仿真工具VCS使用

    1 逻辑仿真工具VCS的使用 在书写完成RTL代码之后,确保自己书写的代码和自己想要的逻辑是一致的. VCS是synopsys公司下的的仿真工具. 1 VCS仿真过程 编译-->仿真--> ...

  3. 【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)

    承接上文 通过之前的[Dubbo3终极特性]「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心.注册中心的原理及开发实战(上),让我们对Dubbo3的三中心架构体系有了一定的认识 ...

  4. 【Redis技术专区】「优化案例」谈谈使用Redis慢查询日志以及Redis慢查询分析指南

    前提介绍 本篇文章主要介绍了Redis的执行的慢查询的功能的查询和配置功能,从而可以方便我们在实际工作中,进行分析Redis的性能运行状况以及对应的优化Redis性能的佐证和指标因素. 在我们5.0左 ...

  5. Echarts自适应屏幕,无需刷新网页,可根据屏幕大小完美展现,内有详细代码注释,我可真是个小机灵~~O(∩_∩)O哈哈~

    Echarts自适应屏幕,无需刷新网页,可根据屏幕大小完美展现 效果如图 随意拖拉,无惧检验 ~ ~ ~ ~ 下面上代码 里边有详细解释 <template> <div class= ...

  6. sun.security.validator.ValidatorException: PKIXpath building failed: sun.security.provider,javax.net.ssT.SSLHandshakeExceptions.certpath.SunCertPathBuilderException

    报错信息: sun.security.validator.ValidatorException: PKIXpath building failed: sun.security.provider,jav ...

  7. ChatGPT保姆级注册教程

    ChatGPT保姆级注册教程 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜.这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题. 有人说ChatGPT ...

  8. 联邦GNN综述与经典算法介绍

    作者:京东科技 李杰 联邦学习和GNN都是当前AI领域的研究热点.联邦学习的多个参与方可以在不泄露原始数据的情况下,安全合规地联合训练业务模型,目前已在诸多领域取得了较好的结果.GNN在应对非欧数据结 ...

  9. 安装和配置Java开发环境JDK

    我们通常软件开发的操作系统选择Windows,生产环境选择linux或windows Server.移动开发可能是安卓或IOS和鸿蒙系统等. Windows下一般选择的是64位的操作系统,一般建议CP ...

  10. Mysql中where if问题

    网上关于Mybatis中where与if的说法乱七八糟的,Myabtis官网写的很清晰.为了防止误导他人,在此记录: 1.where语句+< if > 标签 <select id=& ...