首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebRequest C# 403错误

WebRequest C# 403错误
EN

Stack Overflow用户
提问于 2009-10-23 06:15:20
回答 3查看 2.2K关注 0票数 1

好的,这就是我要做的。我正在向服务器发出请求,要求下载一个文件。我这样做是通过向网站创建一个WebRequest来获得响应,就像你通常会做的那样,尽管我得到了一个403错误,说我没有权限。

问题是,当我将URL插入Google Chrome时,我会被重定向,然后我请求的文件就会掉下来。我在其他浏览器上尝试了这个URL,得到了403错误。

Google Chrome做了什么让它绕过403错误?我试过使用Google Chrome用户代理,但这对我没有帮助。

帮助

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-30 10:07:33

谢谢你的帮助。你的答案对我都没有直接帮助,但谢谢你的尝试。

我的程序试图从服务器上拉出一个文件。我已经知道了如何在使用Chrome时绕过身份验证问题并在服务器上找到文件。事实证明,他们的web服务使用用户会话更高级。

基本上,我无法访问webservice命令,所以我所能做的就是使用基本的http urls来获取预定义的响应。我用来获取服务器文件的文件url不是唯一的,它是动态的,取决于get浏览器/会话。我使用HTTPRequest对象获取超文本标记语言文件,以便对其进行解析。使用html文件,我解析它以找出文件的动态ID (我认为它是唯一的)。然后我会将其附加到URL的末尾。在Chrome中,我会被重定向并出现下载提示。问题是,当我想要下载文件时,我需要webbrowser对象。知道了这一点,我使用webbrowser对象来获取文件ID,然后使用相同的webbrowser对象(从技术上讲,根据get服务器相同的会话)来下载该文件。

这是相当复杂的。基本上,我的程序是一个小黑客,它提供的功能,服务器是尝试块。

希望这对你们将来的任何项目都有帮助。

票数 1
EN

Stack Overflow用户

发布于 2009-10-23 06:59:07

web服务器可能会识别Chrome用户代理,并允许它下载文件,但不允许其他用户代理下载。将您的WebRequest设置为使用与Google Chrome相同的用户代理字符串和设置-默认情况下,它可能使用IE设置。

编辑:这里是instruction from MSDN about how to set the WebRequest user agent string。要查找任何浏览器的用户代理,请在其地址栏中输入以下内容:

代码语言:javascript
运行
复制
javascript:prompt('my user agent string is', navigator.userAgent);
票数 1
EN

Stack Overflow用户

发布于 2009-10-23 07:29:23

403 status code指示您尝试访问的资源是禁止的。也就是说,不要问,因为你得不到它。这与401代码的不同之处在于,在服务器确认资源的交付之前会提出授权质询。

虽然这可以是编程配置,但这也可以通过对通过web服务器配置的资源的访问限制来解释。

你能验证在Google Chrome中下载的资源就是你想要访问的资源吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1610295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档