C# - 获取HTTP服务器消息

时间:2014-05-07 22:26:08

标签: c# http

在浏览器中键入我的Linksys路由器(Linksys WRT54GS)的IP时,我收到一条MessageBox说

"请输入用户名和密码。服务器说:Linksys WRT54GS"

我想使用此消息来识别我正在开发的C#应用​​程序中的设备。我如何得到最后一部分"服务器说:Linksys WRT54GS"变成一个字符串?

3 个答案:

答案 0 :(得分:2)

你用什么来做出回应? Web客户端?

无论如何,您需要从请求中读取响应头。包含您要查找的字符串的标题是:

  

" WWW验证"

并且它包含与此类似的值:

  

"基本领域=" Linksys E4200""

您需要解析该值并阅读" Basic realm ="之后的内容。一部分。

答案 1 :(得分:1)

您看到此消息的原因是服务器可能返回HTTP状态代码401 Unauthorized。作为该响应的一部分,服务器还应发送WWW-Authenticate:标头,并为其提供basic身份验证的realm身份验证提供realm,以便为其提供身份验证。 {{1}}是您在浏览器中显示的消息。请参阅more info here

答案 2 :(得分:0)

由于这个链接,我想出了如何做到这一点:http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.getresponseheader.aspx

我的想法是捕获WebException并将响应状态代码与HttpStatusCode.Unauthorized匹配。

然后你可以通过challenge = response.GetResponseHeader(" WWW-Authenticate")获得你想要的东西;

感谢所有帮助过的人