/// <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. 【Redis实战专题】「性能监控系列」全方位探索Redis的性能监控以及优化指南

    Redis基本简介 Redis是一个开源(BSD 许可).内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合等数据类型.内置复制.Lua 脚本. ...

  2. Python导入Excel表格数据并以字典dict格式保存

      本文介绍基于Python语言,将一个Excel表格文件中的数据导入到Python中,并将其通过字典格式来存储的方法.   我们以如下所示的一个表格(.xlsx格式)作为简单的示例.其中,表格共有两 ...

  3. mysql 简单查询

    查询特定列SELECT ename,birthday FROM emp; 查询所有的select*from emp; 给列起别名select ename AS 姓名, salary AS 工资 FRO ...

  4. 100 行 shell 写个 Docker

    作者:vivo 互联网运维团队- Hou Dengfeng 本文主要介绍使用shell实现一个简易的Docker. 一.目的 在初接触Docker的时候,我们必须要了解的几个概念就是Cgroup.Na ...

  5. 【转】查看iOS崩溃日志

    我们在进行iPhone应用测试时必然会在"隐私"中找到不少应用的崩溃日志,但是不会阅读对于很多人来说简直头疼.在此小编为大家详细介绍一下具体的阅读方法,希望大家可以更快的定位BUG ...

  6. Matlab导入多个.mat文件进行画图

    目录 0. 实验背景 1. 导入.mat文件存储 1.1 导入.mat文件及作图最简单的方式: 1.2 导入.mat文件及作图的脚本代码 2. plot画图总结 2.1 画散点图 2.1.1 点形状 ...

  7. redis georadius源码分析与性能优化

    原文地址: https://blog.fanscore.cn/a/51/ 背景 最近接到一个需求,开发中使用了redis georadius命令取附近给定距离内的点.完工后对服务进行压测后发现geor ...

  8. Java前后端请求Content-Type与接受方式

    1.Get Get方法没有请求体,所以加不加Content-Type没有意义. 参数通过拼接到Url来加入 url?key=value&key2=value2 SpringMVC后台如何获取参 ...

  9. opencv::parallel_for_使用说明

    直接上代码 #include <opencv2/opencv.hpp> #include <iostream> #include <functional> usin ...

  10. 如何使用 ArrayPool

    如果不停的 new 数组,可能会造成 GC 的压力,因此在 aspnetcore 中推荐使用 ArrayPool 来重用数组,本文将介绍如何使用 ArrayPool. 使用 ArrayPool Arr ...