Tag: http

.NET HTTP解析器

我正在编写一个应用程序来嗅探一些HTTP流量。 我正在使用WinPcap来访问TCP / IP数据包。 是否有一个库可以帮助我解析HTTP消息? 我自己实现了一个基本的解析器,但我想要更成熟的东西:我不断遇到新的变化(分块消息,gzip压缩等) .NET框架可能有一个HTTP解析器,但是当TCP数据包不是来自直接TCP连接时,我看不到任何使用它的方法。

为什么IIS返回空响应?

我刚刚使用文件系统发布到本地IIS应用程序发布了一个AngularJS / WebAPI项目,我可以在浏览器中打开该网站。 不幸的是,不能加载诸如图像,css等资源。 当我尝试访问位于子文件夹中的任何文件时,我仍然从服务器收到HTTP 200,但正文是空的。 我记得几年前我曾经遇到过这个问题,但我不记得为什么会这样。 请求 GET http://localhost/Content/images/common/logotype.png HTTP/1.1 Host: XX.XXX.XX.XXX Connection: keep-alive Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36 Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8,sv;q=0.6 响应 HTTP/1.1 200 OK Server: Microsoft-IIS/8.5 X-Powered-By: ASP.NET Date: Tue, 25 Aug 2015 07:56:12 GMT Content-Length: […]

C#HttpWebRequest.GetResponse – 如何处理非exception与webexception响应的StatusCode用法?

有人可以帮助清除HttpWebResponse和WebException中“StatusCode”属性的用法吗? 例如,似乎如果: a)没有exception,那么HttpWebResponse将有一个StatusCode可以有一些值,表明两者: – 成功(例如OK,Accepted等) – 失败(例如UseProxy,RequestTimeout等) b)有一个WebExeption throw,它本身有一个响应对象,它还有一个StatusCode(我假设它是基于相同的HttpStatusCode枚举)。 问题1 – 在StatusCode将触发WebException的情况下是否存在任何一致性(并且您将在exception中获取详细信息),相比之下没有exception会返回但是您会在StatusCode中找到结果响应对象? 问题2 – 或者更具体地说,尝试处理httpWebRequest.GetResponse调用的pseduo代码(或C#代码本身)是什么,以便您想要区分用户的响应类别: 代理设置/代理问题=>所以可以告诉用户修复代理设置 连接问题/ web-server down =>所以用户意识到这一点 服务器端错误(例如服务器在那里但是处理请求时存在问题 – 例如内容不存在)=>因此用户可以通过网站管理员加薪 成功案例(我认为这不仅仅是OK)=> na(成功案例) 谢谢

Content-Disposition文件名无法在IE上运行

我正在开发一个asp.net/c# web应用程序,允许用户查看和下载PDF文件。 当我点击一个文件时,我会在浏览器中可用的PDF阅读器中查看,当我保存它时,该文件应该保存为我通过标题传递的名称。 但这不是IE7和IE8中的行为 FileInfo f = new FileInfo(FileName); Response.ContentType = “application/pdf”; Response.AddHeader(“Content-Disposition”, “inline; filename=” + f.Name) 当我单击以保存文件时,我发送的文件名不用于保存文件,但正在使用URL中的aspx页面的文件名。 这是IE中的一个错误。 当我在Google Chrome上试用它时,一切正常。

Microsoft.Http.HttpClient,在重定向上正确发送HTTP身份validation参数

我正在使用Microsoft的HttpClient向第三方RESTful服务发出请求。 除了这一个实例之外,它完美无缺(并且非常容易实现)。 以下是提供商对错误期间发生的情况的细分: “POST到组资源的工作方式是,当它完成时,它会将HTTP 302重定向到组实例资源。看起来正在发生的事情是您的HTTP客户端正在向POST发送正确的身份validation信息,这会创建组资源,但当它处理HTTP 302请求的GET时,它没有发送正确的凭据并得到401响应。你能检查你的客户端库并确保它在重定向上正确发送HTTP身份validation参数吗?“ 这是我的POST代码: HttpClient http = new HttpClient(BASE_URL); http.TransportSettings.Credentials = new NetworkCredential(ACCOUNT_SID, ACCOUNT_TOKEN); HttpResponseMessage httpResponse = http.Post(groupUri, “application/xml”, HttpContent.Create(xml.ToString())); result = httpResponse.Content.ReadAsString(); 这让我想到了我的问题; 如何使用HttpClient类获取要在此GET重定向上发送的身份validation参数?

当HttpRequest.Content.IsMimeMultipartContent()返回true时返回false

我需要将一个HTTP请求作为MultiPartFormData发送到REST控制器。 它工作正常,但现在我的控制器上的检查声称请求的类型不正确,即使我在调试器中看到请求的类型正确。 以供参考: 这是调用它的控制台应用程序代码: using System; using System.IO; using System.Net.Http; using System.Net.Http.Headers; using System.Text; namespace QuickUploadTestHarness { class Program { static void Main(string[] args) { using (var client = new HttpClient()) using (var content = new MultipartFormDataContent()) { // Make sure to change API address client.BaseAddress = new Uri(“http://localhost”); // Add first file content var […]

HttpWebRequest下载文件和进度条

我在网上搜索但是在使用HttpWebRequest下载文件时找不到任何进展方法。 这门课程是否支持进步? 任何链接,教程,提示将不胜感激。 谢谢。 PS这是代码…… private static Task MakeAsyncRequest(string requestString) { var request = (HttpWebRequest)WebRequest.Create(requestString); Task requestTask = Task.Factory.FromAsync( request.BeginGetResponse, asyncResult => request.EndGetResponse(asyncResult), null); return requestTask.ContinueWith(t => ReadStreamFromResponce(t.Result)); } private static HttpResponse ReadStreamFromResponce(WebResponse result) { var responseobject = new HttpResponse(); var response = (HttpWebResponse)result; responseobject.StatusCode = (short)response.StatusCode; if (!IsSuccess(responseobject.StatusCode)) return responseobject; using (var responseStream = […]

当HTTP网页是html / text类型时,如何判断HTTP网页何时发生变化?

我正在尝试计算出算法,以判断网络上的非二进制文件是否已更改。 我打算去: LastModified datetime from header,然后如果这些不存在则回退到 来自标题的ContentLength 我发现,对于很多网站而言,HTML页面的LastModified实际上只是使用当前的DateTime,因此这种方法不起作用(即会导致页面总是在变化)我认为… ? 那么什么是好的算法呢? 怎么样? IF response.ContentType.StartsWith(“text/html”) <== or should this just be "text" THEN: Check based on comparing text content before & after ELSE: IF LastModified dates are OK Compare based on LastModified dates ELSE Compare based on ContentLength 谢谢

如何在asp.net C#代码中将自己的自定义文件属性添加到http多部分表单?

我已经使用Visual Studio 2015中的WebSite模板成功创建了一个C#项目。我修改了“Default.aspx”以包含: 我还修改了Default.aspx.cs,如下所示: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { FileUpload1.PostedFile.SaveAs(Server.MapPath(“~/Data/”) + FileUpload1.FileName); } } } 我使用类库模板创建DLL /处理程序,以拦截上传文件Web请求,如下所示: using System; using System.Web; namespace WebRequestInterceptorModule […]

http重定向问题

据我所知,我们可以使用两种方法来重定向http响应。 使用Java脚本window.location; 在ASP.Net中使用HttpContext.Current.Response.Redirect 从function和最终用户的角度来看,这两种方法是否可以互换?