问题标签 [httpwebresponse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
15599 浏览

c# - 此流不支持查找操作。HttpWebResponse

我正在制作一个通过 http 下载文件的程序。

我已经下载了它,但是我希望能够暂停下载,关闭程序并在以后再次恢复它们。

我知道我从中下载它们的位置支持这一点。

我正在通过 HttpWebResponse 下载文件并使用 GetResponseStream 将响应读入 Stream。

当我关闭应用程序并重新启动它时,我不知道如何恢复下载。我尝试在流上进行搜索,但它表示不支持。

最好的方法是什么?

0 投票
3 回答
29002 浏览

.net - 获取使用 HttpWebRequest/HttpWebResponse 发出的 HTTP 请求和响应以在 Fiddler 中显示

有什么方法可以让 Fiddler 捕获使用 .NET HttpWebRequest 和 HttpWebResponse 发出的请求和响应?

0 投票
2 回答
3462 浏览

c# - 检测 WebRequest 的 HTTP 代理错误

如何检测 WebRequest 由于 Web 代理错误而不是目标 Web 服务器错误而失败?

0 投票
4 回答
3996 浏览

c# - 大型 System.IO.MemoryStream 会导致我的应用程序的内存使用量急剧增加吗?

我正在构建一个允许用户从 URL 下载文件的库。我正在考虑的选项之一是让用户为文件指定预期的 MD5 校验和;库的 GetFile(string url) 函数确保下载流的校验和与用户指定的校验和匹配。

意识到 HttpWebResponse.GetResponseStream() 返回的 NetworkStream 不可搜索,我找到了一种复制 Stream 的方法,这要归功于这个问题的答案:如何在 C# 中读取 Http 响应流两次?. 不过,在我走得更远之前,我想弄清楚这种重复对记忆的影响是什么;不幸的是,谷歌和 MSDN 上的多次搜索都失败了。

该库对要下载的文件的大小没有限制。我的问题是,如果用户选择一个 2GB 的文件,.NET 2.0 中的 MemoryStream 实现是否足够聪明,可以有效地使用 PageFile 和 RAM,以至于系统不会因为 VM 崩溃而开始爬网?此外,Jon Skeet 对另一个问题的评论给了我一些思考 - 他断言即使在处理 MemoryStream 之后,内存也不是 100% 释放的。如何以及何时可以确保实际释放内存?它会根据系统的要求(和必要性)发布吗?

谢谢,马诺伊

0 投票
3 回答
6395 浏览

c# - HttpWebResponse:关闭流

我从HttpWebRequest获得响应(使用修改后的版本Jeff Richter 的 CCR 包装器),然后检查一些标头以确定是否继续下载。有时我可能不想继续,所以我因此发出response.Closerequest.Abort。是否有必要发出GetResponseStream然后关闭流,或者这是在调用response.Close时隐含的?

发出 GetResponse 后,文档状态

您必须调用 Close 方法来关闭流并释放连接。不这样做可能会导致您的应用程序连接不足。

那么这是否意味着一旦我们得到响应,就必须获取流并关闭它?

我们看到了一些相当奇怪的问题,即挂起的下载最终会淹没系统。这似乎是资源泄漏的最强候选者,但想知道是否有其他人有此问题的经验。

顺便说一句:假设它是同一个流,两次 GetResponseStream 是否安全?

0 投票
1 回答
1946 浏览

.net - Response.GetResponseStream() 转义双引号

Response.GetResponseStream() 正在返回带有转义字符的 xml

<?xml version=\"1.0\" encoding=\"utf-8\"?>

因为这个 XmlReader 返回 {None}。请帮忙?

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Accept = "*/*"; req.Headers.Add("UA-CPU", "x86"); req.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MS-RTC LM 8)"; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); XmlTextReader xRead = new XmlTextReader(resp.GetResponseStream());

如果我的调用来自客户端脚本 Web 服务调用,则 xRead 为 {None}。当我使用 StreamReader 检查响应流时

StreamReader reader = new StreamReader(resp.GetResponseStream() return reader.ReadToEnd()

我看到了转义字符

<?xml version=\"1.0\" encoding=\"utf-8\"?>

0 投票
1 回答
15155 浏览

vb.net - HttpWebRequest POST 和 Cookie

您好我正在尝试制作一个将数据发布到 joomla 登录页面的应用程序,但我唯一得到的是未启用 cookie。

我应该怎么做?

0 投票
1 回答
684 浏览

httpwebrequest - HttpResponse 是否在没有明确 response.close() 的“使用”块中工作

我试图澄清这一点:

方法一:

方法二:

当我在本地机器上使用 Method-1 和 Method-2 连接并从远程机器 X 获得响应时,它们都正常工作。

当我在远程机器 Y 上使用此代码从 X 获取响应时,只有 Method-1 正在工作,而对于 Method-2,我得到了

上面提到的方法有什么区别以及可能的问题是什么?

0 投票
2 回答
6904 浏览

c# - 在异步 HttpWebResponse 读取期间捕获未处理的 SocketException

对 HttpWebRequest.BeginGetResponse/EndGetResponse 和 HttpWebResponse.GetResponseStream().BeginRead/EndRead 的所有异步调用都是从 try/catch 块进行的,但是,这些异常会传播并且不会留下机会来处理它们并停止应用程序终止:

未处理的异常:System.IO.IOException:无法从传输连接读取数据:已建立的连接被主机中的软件中止。---> System.Net.Sockets.SocketException:已建立的连接被主机中的软件中止

未处理的异常:System.IO.IOException:无法从传输连接读取数据:现有连接被远程主机强行关闭。---> System.Net.Sockets.SocketException: 现有连接被远程主机强行关闭

实际代码片段:

PS:在 Microsoft Connect https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510564提交了错误报告

0 投票
1 回答
952 浏览

cookies - 使用本网站需要 Cookie。HttpWebRequest/HttpWebResponse Cookie

我正在使用以下代码创建一个 HttpWebRequest 并从响应流中呈现 XML。

` HttpWebRequest 请求 = (HttpWebRequest)HttpWebRequest.Create(url);

req.Accept = " / ";

req.Headers.Add("UA-CPU", "x86");

req.UserAgent = “Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.0;MS-RTC LM 8)”;

req.CookieContainer = new CookieContainer();

使用 (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())

{

使用 (StreamReader reader = new StreamReader(resp.GetResponseStream()))

{

}

}`

它在我的本地服务器和测试服务器上运行良好,但在 UAT 服务器上,我收到响应为“使用此站点需要 Cookie”。我不明白为什么会这样。如果我直接浏览到 URL,则会呈现有效的 XML,但如果使用上述代码,它将不起作用。有人可以帮忙吗?