.net 通过URL推送POST**具体实现

时间:2016.04.27 发布人:hnhyspkj

.net 通过URL推送POST**具体实现

已解决问题

谷歌hnhyspkj用户在2016.04.27提交了关于“从零开始.net 通过URL推送POST**具体实现”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-03-02T04:29:56。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !

希望以下的回答,能够帮助你。

第1个回答

用户名:vnieho  

这篇文章主要介绍甚针均值字绝了.net通过URL推送POST**具体实现,有需要的朋友可以参考一下

由于到了一家新公司重新开始接触MVC助件协细千百生程和其他的一些东西。所以的重新拾起许多东西。前一段时间让我写一个和岩求下创统始含字第三方公司推送对接的风封独件厚械磁火束尽械方法。通过对方提供的URL把**post推送问答出去。我把url到了web.按好杀费怀个天把技题考config里代码如下:<addkey="urlStrings"value="urladdress"/>在.CS文件里代码如下:privatestringpostString=System.Confi脸混翻据呼企创guration.ConfigurationManager.AppSettings["urlS至高载海上盾思斗预上trings"].ToString();因为我这边是把**以xml文本的形式传送出去所以要对数封见充刘威据进行包装,然后通过h**ttpWebRequest请求发送**。代码如下:stringbody=string.Format(事距@"<?xmlversion=""1.0""encoding=""UTF-8""?><Body><ValidId>{0}</ValidId><OrderId>{1}</OrderId><Count>{2}</Count><ValidTime>{3}</ValidTime><Remark/></Body>",***.Id,consumption.Order.AgentOrderId,consumption.Count,consumption.CreateTime.DateTimeToDateString("yyyy-MM-ddh**h**:mm:ss"));s病tringrequest=BuildRequest(body);h**鲁由威ttpWebReq史钢快州测今酒赵专般uesthwr=(h**ttpWebRequest)WebRequest.Create(post样般需识裂益String);hwr.Method="POST";h周帝原具派义西情节wr.h**eaders.Add("X-Auth-Token",h**ttpUtility.UrlEncode("openstack"));hwr.ContentType="applicati判卷听on/json";/附械正留/hwr.Accept="a井你种立总pplication/xml";hwr.AllowAutoRedirect=true;byte[]dates=En封众持吃春coding.UTF8.GetBytes(request);intcount=dates.Length;//StreamnewStream=hwr.GetRequestStream();MemoryStreamnewStream=newMemoryStream();try{log.Add("开始请求");newStream.Write(dates,0,dates.Length);hwr.ContentLength=newStream.Length;StreamrequestStream=hwr.GetRequestStream();newStream.Position=0L;newStream.CopyTo(requestStream);newStream.Close();requestStream.Close();在这个地方值得我注意的是刚开始的时候我最早的MemoryStream用的是Stream。但是Stream**流会莫名的报错。Stream**流不能进行length查找操作后来我也是经过网上查找找了解决办法,用MemoryStream来暂代Stream,最后把Stream上的一些查找操作放在MemoryStream上来进行,最后再通过MemoryStream的CopyTo()方法将**导入Stream**流里。最后的是**的接收,这个就简单一些代码如下:h**ttpWebResponsehwResponse=(h**ttpWebResponse)hwr.GetResponse();Streamstream=**ll;stream=hwResponse.GetResponseStream();StreamReaderreader=newStreamReader(stream,System.Text.Encoding.Default,true);stringfile=reader.ReadToEnd();UTF8EncodingUTF=newUTF8Encoding();Byte[]Bytes=UTF.GetBytes(file);file=UTF.GetString(Bytes);这个地方有一个对**编码的转换,我是转为UTF-8编码。最后的是我对接收**的处理,因为我接收的也是xml文本形式的**,所以还有做一些处理操作,也方便自己进行后续操作。代码如下:h**ttpWebResponsehwResponse=(h**ttpWebResponse)hwr.GetResponse();Streamstream=**ll;stream=hwResponse.GetResponseStream();StreamReaderreader=newStreamReader(stream,System.Text.Encoding.Default,true);stringfile=reader.ReadToEnd();UTF8EncodingUTF=newUTF8Encoding();Byte[]Bytes=UTF.GetBytes(file);file=UTF.GetString(Bytes);stringstrBody=TCodeServiceCrypt.Decrypt3DESFromBase64(GetElementValue(doc.Element("Response").Element("Body")),UserFunc.SecretKey);XDocumentxBody=XDocument.Parse(strBody);stringuserId=GetElementValue(xBody.Element("Body").Element("UseId"));这个就是我这次使用的一些应用。我是一个新手,请多指教。