Tag: httpwebrequest

HttpWebRequest:如何识别为浏览器?

问题是如何构建HttpWebRequest因此查询服务器会认为它来自浏览器?

Web请求错误407需要代理身份validation

尝试从网站获取GetResponse; using System.Text; using System.Net; using System.IO; namespace DutyPharmacy751013 { class Program { static void Main(string[] args) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(“http://www.google.com/”); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Encoding encoding = Encoding.GetEncoding(response.CharacterSet); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream, encoding); string responseText= reader.ReadToEnd(); } } } 此代码适用于win7和LAN以及win8和任何无线连接,但不适用于win8和LAN错误:407需要代理身份validation。 有没有解决方案。 谢谢。

是否有一个流行的C#库用于工作HTTP? 例如,简化使用httpwebrequest等

是否有一个流行的C#库用于工作HTTP? 例如,简化使用httpwebrequest等 例如,使用某些参数执行http文件上传需要许多行和Http协议内容格式等知识.WebClient本身不会这样做。 所以,新的,有一个知名的库,c#开发人员在这里使用? 谢谢

HttpWebRequests在后续调用时失败

我知道这是一个模糊的问题,特别是因为我没有提供任何代码,但我正在开发一个.Net 2.0应用程序,我们有一个WebRequest,它将数据发布到内部构建的API。 奇怪的事情发生在我们的第3个(并且总是第3个)后续请求中,该请求在请求的GetRequestStream()方法中失败。 第一次和第二次被叫,一切都很好。 在第三次,它挂了一点,最终超时。 内部的其他应用程序正在调用API,因此我们知道它不是服务器端或网络问题。 我们尝试过几台机器 – 所有机器都有同样的问题。 有没有人曾经遇到过这个问题,或者有没有人对如何调试有任何不满(因为响应对象没有任何东西,或者至少没什么用处)。

如何在Windows8应用程序中向HttpWebRequest添加标头?

我正在开发C#\ XAML metro-ui应用程序。 我想调用一些服务并为此使用HttpWebRequest 。 HttpWebRequest先前实现包含ContentLength和UserAgent属性。 但WinRT的实现没有它。 我试图使用这篇文章中描述的方法。 它适用于UserAgent但不适用于ContentLength 。 我试过设置Headers request.Headers[“Content-length”] = Length; request.Headers[“User-agent”] = UserAgent; 但收到exception“必须使用适当的属性或方法修改’Content-length’标头。” Hot是否可以在WinRT中实现HttpWebRequest中的Headers设置?

HttpWebRequest和I / O完成端口

我正在开发一个应用程序,它需要一种类型的消息才能访问数据库,而另一种类型的消息要去一些外部的xml api。 我必须处理A LOT …其中一个重大挑战是让HttpWebRequest类表现良好。 我最初开始只使用标准的同步方法和线程整个事情。 这不好。 因此,经过一些阅读后,我看到推荐的方法是使用Begin / End方法将工作委托给IO完成端口,从而释放线程池并产生更好的性能。 这似乎不是这样的……性能稍微好一些,但我当然看不到与threadpool相比使用的IO完成端口。 我有一个旋转的线程,并向我发送线程池中可用的工作线程+完成端口。 完成端口总是非常低(我看到的最大值是9)并且我总是使用大约120个工作线程(有时更多)。 我对httpwebrequest所有方法使用开始/结束模式: Begin/EndGetRequestStream Begin/EndWrite (Stream) Begin/EndGetResponse Begin/EndRead (Stream) 我做得对吗? 我错过了什么吗? 我可以同时使用(有时)多达2048个http连接(来自netstat输出) – 为什么完成端口号会这么低? 如果有人可以就如何处理这个管理工作线程,完成端口和httpwebrequest提供一些认真的建议,那将非常感激! 编辑:.NET是一个合理的工具吗? 我可以使用.NET和System.Net堆栈获得大量的http连接吗? 有人建议使用类似WinHttp(或其他一些C ++库)的东西,并从.NET中调用它,但这不是我特别想做的事情!

WebRequest POST同时包含文件和参数

我正在尝试使用.NET / C#上传文件并将一些参数发送到我的网站。 阅读了一些做了一些参数或文件的教程后,我尝试过,但没有成功地将它们组合起来。 以下是我尝试这样做的方法: WebRequest req = WebRequest.Create(baseURL + “upload”); req.Credentials = new NetworkCredential(username, password); String boundary = “B0unD-Ary”; req.ContentType = “multipart/form-data; boundary=” + boundary; req.Method = “POST”; ((HttpWebRequest)req).UserAgent = “UploadTester v0.1”; string postData = “–” + boundary + “\nContent-Disposition: form-data\n”; postData += “myId=123&someFk=456”; postData += “\n–” + boundary + “\nContent-Disposition: form-data; name=\”file\” filename=\”upload.pdf\” […]

使用HttpWebRequest类在上传和下载时显示百分比的进度

我正在尝试使用C# HttpWebRequest上传和下载(在同一请求中)到服务器,因为数据的大小相当大(考虑网络速度)我想向用户显示工作完成的距离以及如何留下了很多(不是几秒钟,而是百分比)。 我已经阅读了几个尝试实现这一点的例子,但没有一个显示任何进度条。 他们都只是使用async而不是在上传/下载时阻止UI。 而且他们主要关注上传/下载,没有人尝试将它们都包含在同一个请求中。 由于我使用.Net 4作为我的目标框架,我自己无法实现async方法。 如果你要建议任何异步,请使用Begin…方法而不是await关键字! 谢谢。

如何在不下载所有页面源的情况下获取网页标题

我正在寻找一种方法,可以让我获得网页的标题并将其存储为字符串。 但是到目前为止我找到的所有解决方案都涉及下载页面的源代码,这对于大量网页来说并不实用。 我能看到的唯一方法是限制字符串的长度,或者只有当它到达标签时才下载一定数量的字符或停止,但这显然仍然会非常大? 谢谢

407需要validation – 未发送任何挑战

更新: 如果您刚刚提到这个问题,那么一般的要点是我正在尝试通过代理创建一个HttpWebRequest,并且我从我们奇怪的代理服务器获得了407。 IE,Firefox,Chrome都能成功地协商代理,Adobe Air应用程序也是如此。 Google Chrome网络安装程序实际上失败并且我们必须使用离线安装程序可能很重要。 感谢Ian的链接,我已经让它进入​​下一阶段。 它现在将令牌发送回代理,但是第3阶段没有通过,因此具有用户名/密码哈希的请求不是由.NET发送的,因此不返回HTML。 我在用: IE6用户代理 Windows 7的 扫描安全代理 .NET 3.5 这是最新的代码,相当于下面的日志: HttpWebRequest request = HttpWebRequest.Create(“http://www.yahoo.com”) as HttpWebRequest; IWebProxy proxy = request.Proxy; // Print the Proxy Url to the console. if (proxy != null) { // Use the default credentials of the logged on user. proxy.Credentials = CredentialCache.DefaultCredentials; } request.UserAgent = […]