我有以下情况。我正在调用一些 web api 来登录到某个服务器。调用看起来像这样: webhost/login?username=email@domain.com&password=alin 返回总是一个像这样的 xml:
<response>
<error>invalid user</error>
</response>
或者
<response>
<token>XXXXXXX</token>
</response>
所以,如果我用错误的凭据调用这个 api,页面返回 401 http 状态,然后在这一行
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
它引发一个错误,并在 catch 块中跳转。(当然)问题是,下一行
stream = response.GetResponseStream();
永远不会发生,所以我永远不会阅读返回的 xml ,包括其中的错误消息。不过,如果我只是将链接粘贴到浏览器中,页面和 xml 就会被加载
为什么浏览器会加载 xml 而我的响应组件却没有。顺便说一句,我在 C# 中这样做
谢谢
Stream stream = null;
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(finalURL);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
}
catch(Exception ex)
{
string x = ex.Message;
}