Tag: webclient

获取没有Content-Disposition的文件名

我正在寻找这个问题的解决方案好几天,我找不到任何。 我想从带有webclient的web服务器下载文件。 下载工作正常,但我无法获得真正的文件名,这对我来说非常重要。 我在许多主页上看过,文件名应该保存在Content-Disposition-Header中。 不幸的是,这个网站的标题是空的。 我试着用它: string header_contentDisposition =””; using (WebClient client = new WebClient()) { client.OpenRead(link); header_contentDisposition = client.ResponseHeaders[“Content-Disposition”]; MessageBox.Show(header_contentDisposition); } 此标题中没有保存信息。 如果我尝试使用我的浏览器(IE,Opera,Chrome)下载文件,则文件名将显示在filedialog中,因此必须将其保存在某处。 你能想象我能在哪里找到它吗? 编辑:我无法从URL中提取它,因为链接是由php生成的 http://www.example.com/download.php?id=10

该操作已超时使用WebClient.DownloadFile并更正了url

我批量上传产品到数据库。 我将图片url下载到用于产品的网站。 我编写的代码在前25次迭代中工作正常(由于某种原因总是那个数字),但随后抛出一个System.Net.WebException“操作已经超时”。 if (!File.Exists(localFilename)) { using (WebClient Client = new WebClient()) { Client.DownloadFile(remoteFilename, localFilename); } } 我检查了它正在请求的远程URL,它是一个返回图像的有效图像URL。 此外,当我使用调试器逐步执行它时,我没有收到超时错误。 救命! ;)

在PowerShell v2中编译新类型 – Cookie Aware WebClient

我正在尝试编译WebClient类的“ cookie aware ”版本 – 但我似乎无法克服使用PowerShell v2中添加的Add-Type cmdlet的一些障碍。 这是我试图编译的代码: PS C:\> $def = @” public class CookieAwareWebClient : System.Net.WebClient { private System.Net.CookieContainer m_container = new System.Net.CookieContainer(); protected override System.Net.WebRequest GetWebRequest(System.Uri address) { System.Net.WebRequest request = base.GetWebRequest(address); if (request is System.Net.HttpWebRequest) { (request as System.Net.HttpWebRequest).CookieContainer = m_container; } return request; } } “@ PS C:\> Add-Type […]

webclient和expect100继续

使用WebClient(C#.NET)时设置expect100continue的最佳方法是什么。 我在下面有这个代码,我仍然看到100继续在标题中。 愚蠢的apache仍抱怨505错误。 string url = “http://aaaa.com”; ServicePointManager.Expect100Continue = false; WebClient service = new WebClient(); service.Credentials = new NetworkCredential(“username”, “password”); service.Headers.Add(“Content-Type”,”text/xml”); service.UploadStringCompleted += (sender, e) => CompleteCallback(BuildResponse(e)); service.UploadStringAsync(new Uri(url), “POST”, query); 注意:如果我将上述内容放在控制台应用程序中并让它运行 – 那么我在fiddler中看不到标题。 但是,我的代码嵌入在由WPF应用程序加载的用户库中。 那么,在线程,初始化等方面还有更多的Expect100Continue。现在,我认为这更多是我的代码问题。

我应该检查WebClient.UploadFile的响应以了解上传是否成功?

我之前从未使用过WebClient,我不确定是否应该检查服务器的响应,以确定上传是否成功,或者如果没有exception我是否可以将文件保存为已上传。 如果我应该检查响应我该怎么做? 解析resposeHeaders属性? 提前致谢。

System.Net.WebClient奇怪地失败了

我试图从我们的TFS服务器上的报告服务实例下载一些数据。 鉴于代码应该在未加入域的计算机上运行,​​我想我会自己设置凭据。 没有运气,得到了一个HTTP 401 Unauthorized返回。 好的,所以我联系了Fiddler看看发生了什么。 但是当我得到Heisenberged时 – 现在这个电话顺利通过了。 因此认证通过Fiddler连接,但没有它就失败了。 Webclient是破碎的还是我在这里遗漏了一些深刻的东西? private void ThisWorksWhenDomainJoined() { WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultNetworkCredentials; wc.DownloadString(“http://teamfoundationserver/reports/……..”); //Works } private void ThisDoesntWork() { WebClient wc = new WebClient(); wc.Credentials = new NetworkCredential(“username”, “password”, “domain”); wc.DownloadString(“http://teamfoundationserver/reports/……..”); //blows up wih HTTP 401 }

下载多个文件WebClient

我正在尝试下载多个文件,但它没有像我希望的那样工作。 有人可以告诉我这个脚本有什么问题,因为我已经尝试了很多东西而且真的不知道该怎么做了。 public static void DownloadFile(string url) { WebClient client = new WebClient(); var name = url.Substring(url.LastIndexOf(‘/’)).Remove(0, 1); foreach (var item in urls) { client.DownloadFile(item, “C:\\” + name); } } private void btnGo_Click(object sender, EventArgs e) { urls.Add(“url1”); urls.Add(“url2”); urls.Add(“url3”); Parallel.ForEach(urls, new ParallelOptions { MaxDegreeOfParallelism = 10 }, DownloadFile); } using (var sr = new […]

进度条和webclient

我有一个大约10-30秒的事件,即从页面下载信息(流量很大),修改它然后使用WebClient将其保存到磁盘上。 因为它需要很长时间,所以我想添加一个进度条或制作一个更新标签(类似于更新..)以指示进度。 有人可以指导我如何做到这一点? WebClient中是否有任何可用于处理此事件的事件?

WebBrowser控制会话中的下载文件

我正在使用WebBrowser control来浏览登录页面并下载文件。 由于我无法使用控件自动管理下载,因此我正在使用WebClient类来尝试实现此目的。 问题是,由于WebClient与浏览器不在同一个上下文/会话中,我正在下载的是安全错误屏幕。 关于如何将WebBrowser会话的上下文传递给WebClient任何想法?

在C#中从WebClient读取响应头

我正在尝试创建我的第一个Windows客户端(这是我的第一个post),应该与“Web服务”进行通信,但是我有一些麻烦来阅读回复的响应标题。 在我的响应字符串中,我收到了一个很好的JSON文档(这是我的下一个问题),但我无法“查看/读取”响应中的标题,只有正文。 下面是我正在使用的代码。 WebClient MyClient = new WebClient(); MyClient.Headers.Add(“Content-Type”, “application/json”); MyClient.Headers.Add(“User-Agent”, “DIMS /0.1 +http://www.xxx.dk”); var urlstring = “http://api.xxx.com/users/” + Username.Text; string response = MyClient.DownloadString(urlstring.ToString());