Tag: http

如何获得快速的.Net Http请求

我需要一个Http请求,我可以在.Net中使用它需要不到100毫秒。 我能够在浏览器中实现这一点,所以我真的不明白为什么这在代码中是个问题。 我已经尝试过WinHTTP以及WebRequest.Create,它们都超过500毫秒,这对我的用例来说是不可接受的。 以下是我试图通过的简单测试的示例。 (WinHttpFetcher是我写的一个简单的包装器,但是它确实是一个获取请求的最简单的例子,我不确定它是否值得粘贴。) 我正在使用LibCurlNet获得可接受的结果,但如果同时使用该类,我会收到访问冲突。 此外,由于它不是托管代码,必须复制到bin目录,因此使用我的开源项目进行部署并不理想。 尝试另一个实现的任何想法? [Test] public void WinHttp_Should_Get_Html_Quickly() { var fetcher = new WinHttpFetcher(); var startTime = DateTime.Now; var result = fetcher.Fetch(new Uri(“http://localhost”)); var endTime = DateTime.Now; Assert.Less((endTime – startTime).TotalMilliseconds, 100); } [Test] public void WebRequest_Should_Get_Html_Quickly() { var startTime = DateTime.Now; var req = (HttpWebRequest) WebRequest.Create(“http://localhost”); var response = req.GetResponse(); var […]

如何在.NET中下载大文件(通过HTTP)?

我需要在C#控制台应用程序中通过HTTP下载大文件(2 GB)。 问题是,在大约1.2 GB之后,应用程序内存不足。 这是我正在使用的代码: WebClient request = new WebClient(); request.Credentials = new NetworkCredential(username, password); byte[] fileData = request.DownloadData(baseURL + fName); 如你所见…我正在将文件直接读入内存。 我很确定如果我要从块中读取数据并将其写入磁盘上的文件,我可以解决这个问题。 我怎么能这样做?

如何从URL中获取数据并将其保存到C#.NET中的二进制文件中,而不会出现编码问题?

在C#.NET中,我想从URL获取数据并将其保存为二进制文件。 使用HttpWebRequest / Streamreader读取字符串并使用StreamWriter保存可以正常使用ASCII,但非ASCII字符会受到损坏,因为系统认为它必须担心编码,编码为Unicode或来自或等等。 从URL获取数据并将其保存到文件(二进制文件)的最简单方法是什么? // This code works, but for ASCII only String url = “url…”; HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url); // execute the request HttpWebResponse response = (HttpWebResponse) request.GetResponse(); // we will read data via the response stream Stream ReceiveStream = response.GetResponseStream(); StreamReader readStream = new StreamReader( ReceiveStream ); string contents = readStream.ReadToEnd(); […]

通过Fiddler发送POST请求到asp.net mvc动作

我有一个ASP.NET MVC网站。 我的一个路由是一个带有5个参数的URL 。 为了便于说明,这些参数被命名为parameter1 , parameter2 , parameter3 , parameter4和parameter5 。 目前,我正在一些C#代码中构建一个URL,它将通过WebClient POST到mvc动作。 该代码如下所示: WebClient myWebClient = new WebClient(); myWebClient.UploadStringCompleted += myWebClient_UploadStringCompleted; string url = “http://www.example.com/customer/” + parameter1 + “/orders/” + parameter2 + “/” + parameter3 + “/” + parameter4 + “/” + parameter5; myWebClient.UploadStringAsync(new Uri(url, UriKind.Absolute)); 我确信UploadString方法可以执行POST 。 我需要做一个POST ,因为我的参数值可能很长。 事实上,我估计偶尔,总url长度可能是20000个字符。 无论如何,当我尝试发布数据时,我收到400 error […]

如何创建一个简单的c#http monitor / blocker?

我正在阅读这个问题( 如何在C#中创建一个简单的代理? ),这几乎是我的意愿。 我只想要开发ac#app,例如,监控Firefox,IE等,并记录所有导航页面。 根据访问过的页面,我想阻止该网站(如父母filter)。 代码片段/样本很好,但如果您能告诉我某些课程的方向,我将不胜感激。 🙂

如何编码文件名以供下载?

当文件名是“Algunas MARCAS quenosacompañan”时,当我尝试下载该文件时,ASP.NET MVC会引发System.FormatException 。 但如果文件名是“Asistente de Gerencia Comercial”则不然。 我想这是因为与UTF-8编码相关的东西,但我不知道如何编码该字符串。 如果我是对的,我怎么能用UTF-8编码对字符串进行编码? 如果我不对,我的问题是什么?

如何阻止HTTP转义引号?

我正在使用C#将一些数据发送到运行PHP的Web服务器。 我正在POST数据中向服务器发送一个JSON格式的对象。 当它离开C#程序时,数据看起来像这样: json_text={“abc”:”hello”, “dfg”:”world”} 我让服务器使用echo $ _POST [‘json_text’]完全按照收到的数据打印数据; 该脚本输出以下内容: {\”abc\”:\”hello\”, \”dfg\”:\”world\”} 我不太熟悉如何将POST数据打包到HTTP数据包中。 我打开了WireShark来查看如何在POST数据中发送引号,看起来它们被替换为%22 。 但是,我尝试用%22替换我的引号,它并没有阻止引号在输出时被转义。 谢谢

C#:System.Net.WebException:底层连接已关闭

我有以下代码: String url = // a valid url String requestXml = File.ReadAllText(filePath);//opens file , reads all text and closes it byte[] bytes = System.Text.Encoding.ASCII.GetBytes(requestXml); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Credentials = new NetworkCredential(“DEFAULT\\Admin”, “Admin”); request.ContentType = “application/xml”; request.ContentLength = bytes.Length; request.Method = “POST”; request.KeepAlive = false; Stream requestStream = request.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); requestStream.Close(); HttpWebResponse response […]

从HttpListener解析POST参数

假设我有HttpListener。 它听一些端口和IP。 当我发送POST请求时它会抓住它。 我如何从HttpListenerRequest解析POST参数? HttpListenerContext context = listener.GetContext(); HttpListenerRequest request = context.Request; if ( request.HttpMethod == “POST” ) { // Here i can read all parameters in string but how to parse each one i don’t know }

如何从WCF REST方法创建自定义HTTP状态代码?

我想在满足特定条件时从RESTful WCF Web服务返回自定义HTTP状态代码。 我不想使用标准的HTTP状态代码; 相反,我想返回一个514状态代码,这对调用用户来说意味着什么。 这可能与WebOperationContext.Current.OutgoingResponse吗?