首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpWebResponse StatusCode toString

HttpWebResponse StatusCode toString
EN

Stack Overflow用户
提问于 2014-05-05 21:11:37
回答 2查看 5.5K关注 0票数 2

我正在尝试处理302重定向响应。我看到了toString方法HttpStatusCode的不同行为。

代码语言:javascript
复制
HttpWebResponse response = (HttpWebResponse) _webRequest.GetResponse();
if (response.StatusCode != HttpStatusCode.OK)
        throw new TestException(TestException.HttpErrorClass,response.StatusCode.ToString(),"");

问题是当我调试和查看响应对象时,StatusCode是显示“找到”状态的。但是,当我对这段代码执行toString时,就会得到“重定向”字符串。而且,它并不总是返回“重定向”字符串,它有时会在我同事的机器上返回“找到”字符串。

toString方法是否有从.net 4.0到.net 4.5的任何更改?有没有人看到过类似的问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-05 21:16:17

如果您查看HttpStatusCode的定义,您会发现值302有多个枚举成员。根据这些文档,当有多个定义时,产生的字符串值并不总是相同的。看看GetName方法(这就是ToString所做的)。

http://msdn.microsoft.com/en-us/library/system.enum.getname(v=vs.110).aspx

如果多个枚举成员具有相同的基础值,则GetName方法保证它将返回其中一个枚举成员的名称。但是,它并不保证它总是返回同一个枚举成员的名称。因此,当多个枚举成员具有相同的值时,应用程序代码不应依赖于返回特定成员名称的方法。

请看下面的答案,以获得更多的见解:Why is it okay for an enum to have two different names with the same numeric value?

票数 3
EN

Stack Overflow用户

发布于 2014-05-05 21:23:28

根据内森的回答,HttpStatusCode-枚举中确实有两个条目。请参阅http://referencesource.microsoft.com/#System/net/System/Net/HttpStatusCode.cs#9b95c882b40ef96e

因此,取决于您得到的响应是这个字符串还是另一个字符串,但是代码总是相同的。

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

https://stackoverflow.com/questions/23481972

复制
相关文章

相似问题

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