问题标签 [system.net.httpwebrequest]

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 投票
1 回答
2271 浏览

c# - ASP.NET、HttpWebRequest 和“无法创建 SSL/TLS 安全通道”

是的,我知道 SO 和谷歌上有很多类似的问题。是的,我已经阅读了所有内容并尝试了那里所说的一切。是的,任何解决方案都没有帮助我。

我有在 ASP.NET 应用程序上下文中使用的类库。我的类库从第三方 HTTPS 网站下载数据。该网站需要客户证书。我添加了证书LOCAL_MACHINE\MY并在winhttpcertcfg.

我的LogIn方法在商店中找到了该证书。正如我在调试输出中看到的 - 在这个阶段一切都很好。但后来,当我尝试加载页面时,我得到了The request was aborted: Could not create SSL/TLS secure channel.异常。

我的代码:

有任何想法吗?

0 投票
0 回答
303 浏览

c# - 使用 C# WebRequest 下载名称中包含 RTL 字符的文件

我正在尝试下载名称中包含希伯来语字符的文件

当我尝试使用浏览器下载时,文件名被正确编码并且服务器返回文件。

如果我使用 C# 代码从服务器下载,则文件名未正确编码,因此服务器返回错误 403。

如果我使用对文件名进行编码HttpUtility.UrlEncode()并将其传递给WebRequest类,它会被正确编码但它具有相同的结果(错误 403)。

我用 Fiddler 检查了网络调用,编码的文件名与浏览器的编码不同。如果我得到文件名并对其进行解码,则文件名不同(见下文)

我怀疑问题在于文件名部分使用从右到左字符编码,并且 WebRequest 类没有配备处理它的方法。请参阅下面用于下载所有文件的代码。



0 投票
1 回答
750 浏览

c# - 下载标头损坏的数据

我刚遇到以下问题:

我需要下载登录页面后面的数据。但是,当我发出 get 请求时,服务器正在提供错误数据 - 内容在那里,但标头集中没有内容长度,它是一个空字段。我用 Fiddler 查找了它,当我尝试用浏览器下载文件时,它也是一样的,但是浏览器完成了下载,而 C# 在从我的请求中获取响应对象时出现异常。

标题如下所示:

我的代码看起来像这样

异常出现在该var response = request.GetResponse();行中。知道如何解决这个问题吗?我只想让它继续,让我读出数据。

忘记了异常 - 它是带有消息的 WebException 服务器违反了协议。Section=ResponseHeader Detail='Content-Length' 标头值无效

0 投票
1 回答
1138 浏览

c# - 如何在 c# 中获取 HttpWebResponse 的 LastModified 日期?

我正在尝试为 windows phone 8.1 创建图像缓存。为此,我需要阅读 HttpWebRequest 的 LastModified 属性。我搜索了谷歌,我发现这个,不起作用。我有这个代码:

我必须做什么才能得到日期?

0 投票
1 回答
1606 浏览

c# - 使用 HttpWebRequest 登录 Gmail 未收到 cookie

我想登录我的 Gmail 帐户并更改密码 100 次以将其设置为我的旧密码。(如您所知,谷歌保留了 100 个以前密码的历史记录,并且不允许您选择其中一个)。我正在使用 HttpWebRequest 和 HttpWebResponse 来解决我的问题。我在 Fiddler 中监控了请求和响应。但是当我使用以下代码登录 gmail 时,我没有得到任何 cookie。问题出在哪里?!

0 投票
1 回答
1938 浏览

c# - 通过 WebRequest 发送文件

我需要使用 C# 将文件发送到内容类型为 application/octet 流的文件。

我可以像下面这样创建一个 HttpWebRequest:

如何完成将文件添加到我的流中?

0 投票
2 回答
3158 浏览

c# - 序列化 HttpWebRequest

我尝试通过 Socket 发送 HttpWebRequest,当我想对其进行序列化时,我得到了这个异常:

mscorlib.dll 中出现“System.Runtime.Serialization.SerializationException”类型的未处理异常附加信息:在程序集“系统”中键入“System.Net.WebRequest+WebProxyWrapper”,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089 ' 未标记为可序列化。

这是我的代码:

和我的序列化类:

我将我的类设置为 Serializable() 但它不起作用。

问题出在哪里?

0 投票
1 回答
871 浏览

cookies - Httpwebrequest POST 方法 [未启用 Cookie]

我最近尝试通过 http web request post 方法登录 source.amazon.com。我一切正常,但每次我尝试创建请求时。我收到“未启用 Cookie”。我正在使用 cookie 容器,但仍然如此。这是我的代码:[任何帮助将不胜感激]

将 tempCookies 调暗为 CookieContainer
将 logincookie 调暗为 CookieContainer
Dim postData As String = "appActionToken=bPQVeahS2jIO4B1Cb7M53hzMOFEj3D&appAction=SIGNIN&openid.pape.max_auth_age=ape%3AMA%3D%3D&openid.ns=ape%3AaHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLjA%3D&prevRID=ape%3AMTNKSlBHREM3WEJLOFZYRVI2QTA%3D&pageId=ape%3Aa29yX2IyYnBvcnRhbF9uYQ%3D%3D&openid.identity=ape% 3AaHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLjAvaWRlbnRpZmllcl9zZWxlY3Q%3D&openid.claimed_id=ape%3AaHR0cDovL3NwZWNzLm9wZW5pZC5uZXQvYXV0aC8yLjAvaWRlbnRpZmllcl9zZWxlY3Q%3D&openid.mode=ape%3AY2hlY2tpZF9zZXR1cA%3D%3D&openid.assoc_handle=ape%3Aa29yX2IyYnBvcnRhbF9uYQ%3D%3D&marketPlaceId=ape%3AQTFWMlNZTFRNUFAzNjI%3D&openid.return_to=ape%3AaHR0cHM6Ly9zb3VyY2UuYW1hem9uLmNvbS8jL2Rhc2hib2FyZA%3D%3D&email=EMAIL&create= 0&密码=密码&metadata1=OAL6NohRZ7zCHzgzUIxnrUVUf8OJ%2F%2BSqjeyfxKqF7GP%2B8P4eei5ozS7eVbWpYaxOJ0pZmsgS7uNT7yWrk0eN5XHYn%2FsM6nm4dgGOaXwTA7sOwm8YMUizaxcmZakGUhGnHk%2BJ5hyEIVMDk0CZTP8IZrstTyPlpkQERj5c3b4y2JrbWgLVu0PaYTF1xunw1aSWobbEw9aaO3%2FSXUL6KmTkHYTaJ%2BX3rnqdkykYeVX7%2FSD%2FWq1sRaJ6y3eymefpoKRfbeYNqmpPbuVrgDKickIfy%2BTfUpeVm2H0uuUawHf6lhuhX4NJbsQZBMR9hPN631Ulufr%2FRWfMTS8SXY%2BI9F8H9HT%2F8gsYSdSR8W3umRmGjDZeD1melAJLSbVoIx3%2B2tSTSqlJ6wG0%2F9Pi7RIL5BQHQuEPg%2FRoGjWbZj60kfOirI59pn91r%2FtNFJKP2EXE7G14rcT57zu25UEg2QEE20Br668jhjOwR0I47CERdXFDdINPxH5rfDIbRM4Axm1fdfSF08S1DeTI9Yq4H%2BNWvtn%2Bsu%2FfL5un3b7JWNOKcZHRRbj8%2FKhg2LssGOwc9S4yiDiiGuFdkxlMawc9Pn3ewddTQkPtOz6PgMQENr6udpvNLaEyMKA7T2KWE2SacabX2OiJbkh04lp5wuoM4n86G9eP0yHAk1TZxKQc%2B2vYyoUJHxojLXqKREi5O%2Fv5lBpeN% 2Bk6jQMZjF7MbQbxefAWlQ%2BljSbZ2bug7axwPdTAlBs239z8zMpOBG0y4%2F47iyMViymqYPKPDoS3%2BZN47baYUVDdp1mUbS71LO74YKaEJEjdfNeT%2B5faXblFCI2e39PSZa%2FlnvNvQU%2Bmkz%2BQDmn2kk62X5tio15DsGp%2FS3Nm3z3XImRlqLsxgqXSzApKPtK6OtHLqGIc5WWpJOXGPqcIMQ2aUuJaMmHfulzPNM06T6Tbp470xznqGwzwHYtEAN3%2FnnvCqsKs2i05yFKpsn1rpXEG5MjtMHth3uXBfItT61xuweapDYR4rqGBCAjNWooUe4Nlvpg2B42scDubRunuYzu7FlcmprrBxhqK1C9xJFC4gHVktX3NaKvTHMWa3gFlWq%2FEsP6ZBgNixtC3VmJKm7OvdzRxelw%3D"
Dim encoding As New UTF8Encoding
Dim byteData As Byte() = encoding.GetBytes(postData)
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create(" https://source.amazon.com/ap/signin?ie=UTF8&openid.pape. max_auth_age=0&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.claimed_id=http% 3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.assoc_handle=kor_b2bportal_na&marketPlaceId=A1V2SYLTMPP362&openid.return_to=https%3A%2F%2Fsource.amazon.com%2F%23%2Fdashboard "), HttpWebRequest)
将 tempCookies 调暗为新的 CookieContainer
postReq.Method = "POST"
postReq。 CookieContainer = tempCookies
postReq.KeepAlive = True
postReq.ContentType = "application/xhtml+xml"
postReq.Referer = " https://source.amazon.com/ap/signin?ie=UTF8&openid.pape.max_auth_age=0&openid.ns=http%3A %2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.claimed_id=http%3A%2F%2Fspecs.openid.net %2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.assoc_handle=kor_b2bportal_na&marketPlaceId=A1V2SYLTMPP362&openid.return_to=https%3A%2F%2Fsource.amazon.com%2F%23%2Fdashboard "
postReq.UserAgent = "Mozilla/5.0 (Windows; U;Windows NT 6.1;ru;rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"
postReq.ContentLength = byteData.Length
将 postreqstream 调暗为 Stream = postReq.GetRequestStream()
postreqstream.Write(byteData, 0, byteData.Length)
postreqstream.Close()
将 postresponse 调暗为 HttpWebResponse
postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
tempCookies.Add(postresponse.Cookies )
logincookie = tempCookies 将 postreqreader 调
暗为新 StreamReader(postresponse.GetResponseStream())
将页面调暗为 String = postreqreader.ReadToEnd
RichTextBox1.Text = thepage

0 投票
1 回答
2400 浏览

c# - WebException: 远程服务器返回错误: (405) Method Not Allowed.ror in / application

我在我的机器上配置了一个本地网站,它有一个允许文件下载的虚拟目录。文件下载完美,没有问题,但有 GET 请求。

问题是我想使用 POST 请求下载,因为我想包含一些请求参数。但是每当我尝试使用 POST 下载文件时,它都会抛出 WebException。

这是我下载请求的 C# 代码。

我搜索了很多线程。我尝试启用目录浏览,在请求过滤中添加 POST 动词,将动词添加到处理程序映射。但没有成功。

请帮我找出问题所在。

0 投票
1 回答
1234 浏览

c# - 为什么要从 .NET 中删除 HttpWebRequest 和 HttpWebResponse 的构造函数?

也许产品代码实例化这些类型没有意义,但构造函数的弃用使得使用Http实现的单元测试客户端WebRequest/Response比应有的麻烦多得多。我认为将构造函数带走没有任何价值,而拥有它们显然很有价值,那么弃用它们的技术原因是什么?