GetRequestStream的效率为什么这么底?

问题描述

我用C#来POST一个xml文件到服务器,并获得返回,但运行到GetRequestStream的时候特别慢,需要2-3秒才返回,为什么?有什么好方法提高效率吗?前段时间用C#写了一个往TCP某端口写数据,建立连接的时候也是特别慢,后来由于急,没办法,只有改用C++来做了,是不是C#就这本事?我才用C#不久,往高手指教。下面是我POST数据的代码,往高手指教usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;//usingSystem.Web.Security;usingSystem.IO;usingSystem.Net;usingSystem.Security.Cryptography.X509Certificates;usingSystem.Net.Security;namespacepahttps{classProgram{staticstringinputFileName;staticstringoutputFileName;staticvoidMain(string[]args){inputFileName=args[0];outputFileName=args[1];StreamReaderDataReader=newStreamReader(inputFileName,UnicodeEncoding.GetEncoding("GB2312"));stringDataString=DataReader.ReadToEnd();DataReader.Close();HttpWebRequestHttpWReq=(HttpWebRequest)WebRequest.Create("https://www.myweb.com/invoke/receive?");HttpWReq.Method="POST";stringpostData=DataString;Encodingencoding=Encoding.GetEncoding(936);byte[]byte1=encoding.GetBytes(postData);HttpWReq.ContentType="text/xml";HttpWReq.ContentLength=byte1.Length;System.Net.ServicePointManager.CertificatePolicy=newMyPolicy();HttpWReq.ClientCertificates.Add(newX509Certificate2("my.pfx","1234"));StreamSendStream=null;Console.WriteLine("CreateGetReqstart"+System.DateTime.Now);SendStream=HttpWReq.GetRequestStream();////这里比较郁闷,需要2-3秒,就是这里效率低,求教Console.WriteLine("CreateGetReqend"+System.DateTime.Now);Console.WriteLine("poststart"+System.DateTime.Now);SendStream.Write(byte1,0,byte1.Length);SendStream.Close();Console.WriteLine("postend"+System.DateTime.Now);Console.WriteLine("CreateResponStart"+System.DateTime.Now);HttpWebResponseresponse=(HttpWebResponse)HttpWReq.GetResponse();StreamreceiveStream=response.GetResponseStream();//这里也比较慢。。。。。。Console.WriteLine("CreateResponEnd"+System.DateTime.Now);Console.WriteLine("receivestart"+System.DateTime.Now);StreamReaderreadStream=newStreamReader(receiveStream,Encoding.UTF8);Console.WriteLine("Responsestreamreceived.");Console.WriteLine("receiveend"+System.DateTime.Now);stringReceivedString="";ReceivedString=readStream.ReadToEnd();Console.Write(ReceivedString);readStream.Close();receiveStream.Close();StreamWriterReturnFile;ReturnFile=File.CreateText(outputFileName);ReturnFile.Write(ReceivedString);ReturnFile.Flush();ReturnFile.Close();}publicboolCheckValidationResult(objectsender,X509Certificatecertificate,X509Chainchain,SslPolicyErrorserrors){returntrue;}}publicclassMyPolicy:ICertificatePolicy{publicMyPolicy(){}publicboolCheckValidationResult(ServicePointsrvPoint,X509Certificatecertificate,WebRequestrequest,intcertificateProblem){returntrue;}}}

解决方案

解决方案二:
这两个地方都是需要远程回应时间的,时间长说明网络差,虽然我没这方面的困扰,也不排除可能C#真的烂
解决方案三:
谢谢答复,不过好像和网络没什么关系,因为同样的功能,我有用C++写,返回只是0.2秒,郁闷呀
解决方案四:
没高手解答吗?郁闷
解决方案五:
晕那,是这里没能能解决,还是就这样?
解决方案六:
呵呵,我和你遇到了一样的问题,其实很简单,就是代理惹的祸在GetRequestStream()之前加入HttpWReq.Proxy=null;就好了。.netframework2.0默认搜索代理。
解决方案七:
谢谢楼上,加上这句,果然快了不少
解决方案八:
语言没有什么烂不烂,要看应用场合,在说了,.NET是高封装的,有些东西是被封装在封装的,安全机制不同
解决方案九:
引用5楼wyware01的回复:

呵呵,我和你遇到了一样的问题,其实很简单,就是代理惹的祸在GetRequestStream()之前加入HttpWReq.Proxy=null;就好了。.netframework2.0默认搜索代理。

上面的学习了

时间: 2024-10-03 20:28:23

GetRequestStream的效率为什么这么底?的相关文章

Delphi中利用钩子实现QQ聊天窗口的修改

有人曾为公司不让用QQ.MSN等聊天工具而烦恼吗?看了下面的小程序你就会打消这种看法了. 当初公司做校园一卡通的项目时,里面的机房客户端需要用到系统的低级键盘钩子WH_KEYBOARD_LL,这也是我第一次接触到Windows中的Hook,因为WH_KEYBOARD_LL和其他钩子不一样,在Delphi的Windows帮助以及windows.pas文件中都没有定义,但microsoft的msdn中确有WH_KEYBOARD_LL的介绍,所以一路解决后就对Windows的系统钩子产生了兴趣.之后相

.net中大数处理的一些算法思想

算法     在 .NET 开发中,有时会因为处理一些边缘学科的知识内容,如统计,金融,天文等计算,是加密解密算法都会涉及到大数的运算,就是.net中最大数值类型储存了都会溢出的数,我的一个想法是计算时用数值类型,储存(暂时)和输出时是字符串 那么储存时就需要BOX[n] n个数组来暂时储存一个计算中的小步骤结果, '如一下例子====================算法理解图=======================                        '97*97*97*97*

高效算法的常用技术(算法导论)

对于高效算法, 有些比较简单的技术, 如分治法, 随机化, 和递归求解技术. 这边介绍些更为复杂的技术, 动态规划, 贪心算法 当对于复杂问题设计算法时, 首先会想到使用分治法 来解决, 分而治之, 一个很有哲理性的思路, 再复杂的问题都可以不断分解到你可以轻松解决的粒度, 把所有简单问题都解决完后, 组合在一起就得到了复杂问题的解, 可以看出其中典型的递归求解的思路. 使用分治法的要求, 各个子问题是独立 的 (即不包含公共的子子问题,子问题不重叠 ). 如果子问题重叠, 用分治法就比较低效,

微信框架的几个层次

###第一层次:通信处理 对访问微信服务器进行处理,主要解决报文来来去去的问题.这里采用的技术一般是HttpClient或类似的技术. 第二层次:报文解析 通过对报文进行解析,让程序员直接要拿到的报文对象进行处理,避免程序员自己手工处理XML和JSON相关.这里采用的技术一般是XOM框架及一些JSON转换相关的技术. 第三层次:报文模拟发送 在调微信相关接口的时候,经常要对微信的API接口进行验证,实际上微信的API中有大量的坑,如果通过写程序来试错,效率会非常底,这个时候,如果有一个报文模拟发

怎样选择使用特殊素材的乒乓球底板

怎样选择使用特殊素材的乒乓球底板 (一)根据自己的主要技术来选择:一般地说,以弧圈技术为主的可选择加入了芳基纤维的或加入了高弹玻璃纤维的系列乒乓球底板:以快攻技术为主的可选择加入了碳素纤维的或加入碳素玻璃纤维的系列乒乓球底板:以快攻与弧圈技术综合运用的,可选择加入了芳基碳素混淆织纤维的系列乒乓球底板. (二)根据自己的个性.风格倾向来选择:追求风格凶狠的应选择击球底劲更足的厚型底板:希望风格稳健的应选择手感更好的薄型底板:喜欢快速多变的应选择击球脱板速度较快的底板. (三)根据自己的活动范围来选

隋政军口述:爆扁爽木屋烧烤是这样成功的

从09年开始,隋政军一直在苦苦的探究,学习;试用;失败;总结;再学习;再失败.5年过去了.看了无数书,上了N多培训班,犯了能犯错误.终于开始找到属于木屋的那个必然之道--"爆扁爽" 微利时代连锁餐饮企业核心竞争力打造探究由于偶然的机会进入餐饮行业后这13年中我的感觉就如坐过山车,一直在爽与不爽中折腾.总觉得事事不是被自己把控,所有的问题如一个巨大旋涡,自己身陷其中,苦苦挣扎,寻找出路.记得09年去上海上课的路上,看到一篇高人写的文章说:所谓成功的人士,基本上都是属于运气好.被天上掉下的

[原文翻译]样式表编写效率手册

样式表 来自positioniseverything的How To write Efficient CSS是篇浅显易懂的CSS优化技术教学文章,实用性强,文字优美,非常经典,曾经JJGOD有翻译过,但是链接已经失效,自己也没有保存,所以干脆用自己的风格翻译出来,如果能达到JJGOD的翻译水准将是我的无上荣幸.尽管我努力试图保留原文作者的原汁原味,但是在翻译过程中发现,作者使用的生动的词句直译成中文反而并不生动,为此加入自己的语气和用词习惯,这样应该会令译文重新恢复"生动":) 水平有限

如何能节约seo工作者的优化时间提高效率

做网站优化3年多了,每天的工作就是不停地转载,查看网站的排名,外部链接,写软文,重复同样的工作,确实让我们很烦,有的时候我就想,为什么总是要这样,难道这就是我们seo的工作吗?不应该是这样的,我们应该找到一个方法去解决这个弊病,寻找快速方法,提高效率,下面我来说说我的总结,希望对大家有所帮助. 首先,网站seo的工作应该把大部分时间放在网站内部的优化,不能靠着简单的外部链接提高网站的权重,据我所观察,网站的内部优化能更有效的提高网站的排名,好的内容才能稳定的提高网站排名,一个网站我们在确定网站标

如何用好Word来提高办公效率

  Word算是我们日常办公中使用频率比较高的一款软件,使用好Word,无疑对我们的办公效率的提升有很大的帮助. 1.Word 的模板 1.1.模板 Word模板是一种文档类型,随着打开的过程会自动创建副本.例如,商务计划是在Word 中编写的一种常用文档.您只需打开一个模板,然后填充特定于您的文档的文本和信息即可.在把文档保存为文件时,文档与文档之间会以模板分开保存.可以在Microsoft Office Online 上找到大多数种类的文档的Word 模板.如果您已连接到Internet,请