问题标签 [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 投票
8 回答
53851 浏览

.net - WebClient 与 HttpWebRequest/HttpWebResponse

在我看来,大多数可以通过课堂完成的事情HttpWebRequest/Response也可以完成WebClient。我在某处读到WebClientWebRequest/Response.
到目前为止,我看不到任何可以用HttpWebRequest/ResponseHttpWebRequest/Response无法完成的事情,也看不到WebClientHttpWebRequest/Response 会给你更多“细粒度”控制的地方。

我应该何时使用 WebClient 以及何时HttpWebRequest/Response?(显然,HttpWebRequest/Response是特定于 HTTP 的。)

如果HttpWebRequest/Response是较低的水平WebClient,我可以用什么来完成HttpWebRequest/Response我无法完成的事情WebClient

0 投票
2 回答
3903 浏览

asp.net-mvc - 对 HttpResponseBase 的 Web 响应。可能吗?

在控制器操作中,我使用 WebRequest 手动将表单发送到远程 URL。我成功接收到一个包含要显示的 html 页面的 WebResponse。我想将此响应“粘贴”为操作的响应(类型为 HttpResponseBase)。一个动作通常会返回一个 ActionResult,那么我如何结束我的控制器动作以便 WebResponse 成为结果?

注意:浏览器中的 Url 也必须成为响应的 url。

更新:这是目标。这是在贝宝结帐页面上。我不想在我的视图中拥有一个包含所有购物车隐藏字段和一个结帐提交按钮的表单,我想要一个链接到我的一个操作的简单结帐按钮。在此操作中,我将准备带有表单的 WebRequest 并将其发送到 paypal。在操作中执行此操作还允许我将未激活的订单存储在数据库表中,这样当订单确认到来时,我可以将其与存储的订单进行比较并激活它。

解决方案:感谢那些回答指出无法通过 POST 重定向的人。看来我没有义务通过 POST 重定向到贝宝。相反,我可以使用查询字符串中的所有购物车数据构造一个 URL 并重定向到它。从控制器操作方法执行此操作仍然允许我将挂单存储在数据库中。

谢谢

0 投票
1 回答
1432 浏览

c# - 为什么写入响应流时内容被破坏

我正在尝试写出响应流 - 但它失败了,它以某种方式破坏了数据......

我希望能够将存储在其他地方的流写入 HttpWebResponse,因此我不能为此使用“WriteFile”,而且我想对几种 MIME 类型执行此操作,但对所有这些类型都失败 - mp3、pdf 等。 ..

提前喝彩

0 投票
2 回答
1553 浏览

asp.net - C# 中的简单服务器和客户端请求/响应

好的。我只是想知道这是否可以做到。

我正在使用 C# asp.net 语言。

我想将结构从网页发送到网络服务器(就像您可以将结构传递给函数一样)。服务器将对结构中找到的数据进行操作,然后将结构(其内容已修改)返回给“客户端”网页。然后,网页将根据接收到的数据执行特定任务。

信息是否可以像函数一样在网页和服务器之间传递?如果没有,有什么方法可以完成上面所说的吗?

0 投票
2 回答
74536 浏览

http - 如何在不强制“另存为”对话框的情况下设置响应文件名

我在一些响应中返回一个流,设置适当的content-type标头。我正在寻找的行为是这样的:

  • 如果浏览器能够呈现给定内容类型的内容,那么它应该在浏览器窗口中显示它。

  • 如果浏览器不知道如何呈现内容,那么它应该显示“另存为”对话框,其中文件名应该是响应中提供的文件名。

问题是,如果我将Content-Disposition标题设置为:

"附件;文件名="myfile.txt""

浏览器将始终显示“另存为”对话框。

如果我不设置Content-Disposition,则“另存为”对话框中使用的文件名是 URL 中在我的情况下不起作用的文件名。

我也试过设置Content-Dispositioninline但结果是一样的。

0 投票
2 回答
1143 浏览

c# - 带有 0x00 字符的网页的截断响应

我写了一个下载网页的程序。它适用于大多数网页,但我发现有些页面不起作用。

这些页面包含 0x00 个字符。

在这个字符之前,我可以阅读页面内容,但不能阅读之后的内容。

我使用这部分代码来读取响应:

在此示例中,我使用异步请求,但我尝试使用同步请求,但我遇到了同样的问题。

我也尝试了同样的结果:

例如,此网址出现问题http://www.daz3d.com/i/search/searchsub?sstring=ps_tx1662b&_m=dps_tx1662b

感谢您的回复

尤尤苏

0 投票
3 回答
2041 浏览

c# - HttpWebRequest.Address 与 HttpWebResponse.ResponseUri

这两个属性有什么区别?

放到上下文中,我正在确定如果我们的 ResponseUri != RequestUri 是否发生重定向。

虽然重定向发生,但 URL http://adage.com/adages/article?article_id=140560将提供与地址 ( http://adage.com/adages/post.php )不同的 ResponseUri ( http://adage.com/adages/post.php ) adage.com/adages/post?article_id=140560)。

看来 ResponseUri 采用 Content-Location 标头并在地址保持正确位置时使用它。

将 RequestUri 与 HttpWebRequest.Address 进行比较以检查重定向是否正确?

0 投票
2 回答
573 浏览

.net - 当最后修改的标头包含“Fri, 20 Nov 2009 15:53:16 E. Australia Standard Time”时,request.GetResponse() 会给出 ProtocolViolationException

Q1 - 这是 .net 中的一个错误,还是我用于测试的网络服务器 ( Mongoose ) 没有以它应该的格式提供标头字段 Last-Modified?

  • 所以在 C# VS2008 中,如果我拨打电话:
    response = (HttpWebResponse)request.GetResponse();
    Console.Out.WriteLine(" - LM = " + response.LastModified);

  • 我得到:ProtocolViolationException:标头中日期字符串的值无效

  • 当我使用 HTTPLiveHeaders 查看最后修改的 HTTP 头时,我看到:

    最后修改时间:2009 年 11 月 20 日星期五 15:53:16 E. Australia Standard Time

Q2 - 关于如何处理的任何建议,以便我依赖使用 Mongoose 服务器的单元测试不会出现这个问题?

Q3 - 任何人都知道这是否会在生产 Internet Web 服务器上经常发生?即我是否应该假设某些网络服务器会以.net 会拒绝的不同格式返回 Last-Modified 字段?

0 投票
1 回答
10226 浏览

c# - HttpWebRequest 与 webclient 类谁更好

可能重复:
WebClient 与 HttpWebRequest/HttpWebResponse

我猜不出谁更好

HttpWebRequestwebclient

你能建议我哪一个在性能方面更好吗

0 投票
1 回答
8614 浏览

c# - 分段 C# 文件下载器

一直在尝试用 C# 编写一个程序,该程序像大多数下载管理器一样一次使用多个段下载文件,但我遇到了下载的文件已损坏的问题。例如,我下载了一个视频,它播放了 2 秒,然后 WMP 说它无法播放。

我对下载的文件进行了十六进制编辑,似乎整个文件中散布着零字节部分,有人知道为什么吗?VS 没有报告错误。

getPart()在单独的线程中为每个段调用。