string Url = System.Configuration.ConfigurationManager.AppSettings["CallPaperInvoiceURL"];
Url = @"" + Url + "?id=" + PK_ECOrderHead + "&whse=" + Whse + "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ProtocolVersion = HttpVersion.Version10;
ServicePointManager.SecurityProtocol = (SecurityProtocolType);
HttpWebResponse res = (HttpWebResponse)request.GetResponse();
StreamReader rd = new StreamReader(res.GetResponseStream());
string theContent = rd.ReadToEnd();
                 string WHSE = Request["WHSE"].ToString();
string transId = OrderData.GenerateTransId();
eStore2.App_Code.Data.OmsRoot.Root root = new eStore2.App_Code.Data.OmsRoot.Root();
eStore2.App_Code.Data.OmsRoot.Head head = new eStore2.App_Code.Data.OmsRoot.Head();
head.transId = transId;
head.transCode = "S1005";
eStore2.App_Code.Data.OmsRoot.Body body = new eStore2.App_Code.Data.OmsRoot.Body();
body.WHSE = WHSE;
root.head = head;
root.body = body;
Encoding encoding = Encoding.UTF8;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(OrderData.Get_GetIMInventoryURL(System.Configuration.ConfigurationManager.AppSettings["GetIMInventory_KeyName"]).Rows[]["KeyValue"].ToString());
request.Method = "POST";
request.Accept = "text/html, application/xhtml+xml, */*";
request.ContentType = "application/json";
byte[] buffer = encoding.GetBytes(JsonConvert.SerializeObject(root));
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, , buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
string Result = reader.ReadToEnd();
eStore2.App_Code.Data.OmsRoot.Root root_s = JsonConvert.DeserializeObject<eStore2.App_Code.Data.OmsRoot.Root>(Result);
List<eStore2.App_Code.Data.OmsRoot.DetailItem> detailItems = root_s.body.detail;
foreach (var item in detailItems)
{
OrderData.Insert_MDB_SYNC_LOG(item.PartNo, item.Qty);
}
}
ShowAlertMessage("库存获取完毕");
                   var rss = new JObject
{
{"Head",new JObject
{
{"TransCode","X1009" },
{"TransId",transid}
}
},
{ "Body", new JObject
{
{"OrderSN", q.OrderSn },
{"WHSE",q.Whse},
{"SNs", SNs }
}
}
}; //呼叫接口
HttpContent JSONContents = new StringContent(JsonConvert.SerializeObject(rss), Encoding.UTF8, "application/json");
using (var response = httpClient.PostAsync(Url, JSONContents).Result)
{
if (response.IsSuccessStatusCode)
{
string s = $"{response.Content.ReadAsStringAsync().Result}";
if (s == "Y")
{
using (var tran = _Database.Database.BeginTransaction())
{
try
{
await _Database.OmsEcjsonlog.AddAsync(new OmsEcjsonlog
{
CreateDateTime = System.DateTime.UtcNow.AddHours(),
Fk = _HeadId,
Json = JsonConvert.SerializeObject(rss),
Msg = $"{q.OrderSn} Paper Invoice"
});
await _Database.Log.AddAsync(GenerateECOrderLog($"成功"));
await _Database.SaveChangesAsync();
tran.Commit();
}
catch (Exception ex)
{
if (tran != null)
tran.Rollback();
throw new Exception($"Failed,{ex.Message}");
}
}
}
else
throw new Exception($"服务系统:{s}");
}
else
{
throw new Exception(response.StatusCode.ToString());
}
}

HttpWebRequest 知识点的更多相关文章

  1. 问题:HttpWebRequest request post 传参; 结果:好用的C# HttpWebRequest用Post同时提交参数和文件的封装类

    在项目中,本来都是在站内进行数据交互的,后来又加进来一个买的php网站(艹).需要进行数据交互,在没有考虑使用web服务的情况下,只有通过Post提交到页面进行数据交互是最好的方式了. 我这边使用的是 ...

  2. dotnet 6 在 Win7 系统证书链错误导致 HttpWebRequest 内存泄露

    本文记录我将应用迁移到 dotnet 6 之后,在 Win7 系统上,因为使用 HttpWebRequest 访问一个本地服务,此本地服务开启 https 且证书链在此 Win7 系统上错误,导致应用 ...

  3. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  4. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  5. UWP开发必备以及常用知识点总结

    一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...

  6. C#高级知识点&(ABP框架理论学习高级篇)——白金版

    前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...

  7. lucene 基础知识点

    部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...

  8. DoraCMS 源码知识点备注

    项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...

  9. atitit 商业项目常用模块技术知识点 v3 qc29

    atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...

随机推荐

  1. uva 12108 Extraordinarily Tired Students (UVA - 12108)

    算法完全转载...原博客(https://blog.csdn.net/u014800748/article/details/38407087) 题目简单叙述 题目就是一堆学生他们有清醒的时候和昏迷的时 ...

  2. 23.match_phrase_prefix实现search-time搜索推荐

    主要知识点: 搜索推荐的使用场景 用法 原理 一.搜索推荐的使用场景 搜索推荐,就是在你做搜索时,当你写出一部搜索词时,es会自提示接下来要写的词,比如当你在搜索hello w 时,如果es中有如下文 ...

  3. python文件头的含义

    一.指定解释器及其路径 在Linux\Mac上,可以用./文件路径直接运行.py文件 这时,需要在python文件开头指定解释器及其路径 #!/usr/bin/python 这样系统就直接按pytho ...

  4. Python面向对象----继承, 重载

    1. 面向对象三大特性之继承. 继承的便捷是子类可以直接调用父类里面的方法和属性.(在强类型语言里面是只能调用公有成员), 不用重复的造轮子. 减少程序猿的负担.实现多态等上层结构 2. 父类代码 3 ...

  5. 【Codeforces 1106E】Lunar New Year and Red Envelopes

    [链接] 我是链接,点我呀:) [题意] 给你k个红包,每个红包可以在si..ti的时间范围内拿走. 抢完红包之后你得到wi元,然后你需要在di+1时刻才能继续抢红包 时间是线性的从1..n 然后某个 ...

  6. Tensorflow人工智能入门(一)

    前言: 作为一个程序员,已经离开开发岗好多年,最近突然迷茫了,不知道自己何去何从.互联网技术发展的速度已快得难以想象,许久不码代码的手也越来越僵直,需求沟通中的套话和空话却越发的熟练,这和当年入行时的 ...

  7. CODEVS——T 1049 棋盘染色

    http://codevs.cn/problem/1049/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Descr ...

  8. 一道Twitter面试题的解答

    前言 这道面试题是我在博客园首页的一篇文章中看到的,面试题我简单的提取出来了,文章链接:http://news.cnblogs.com/n/192014/. 在我用JS实现了我自己的想法之后,我再一次 ...

  9. BC ROUND 43# 03 HDU 5266

    弱啊弱啊,我用了扩展指令,然后大牛告诉我,只对VC++有用,对G++没用的..shit,三题就这样没了. 方法是使用ST在线算法,O(1)查询,然后用线段树维护..呃感觉这个好慢.看了大斌神的是用LC ...

  10. android 通用菜单条实现(一)

    一.前言介绍 直奔主题啦,非常多Android app都有菜单条.菜单条除了背景图片.图标的不同外,布局基本一致.大致能够分为三部分:菜单条的左側区域.菜单条中间区域.菜单条右側区域. 为了考虑代码的 ...