在Windows Phone上,如果
,我可以WebException
获得StatusCode == HttpStatusCode.NotFound
在Windows Phone WebException
上,两种情况的状态均为WebExceptionStatus.UnknownError
。
如何从案例1
中判断案例2
?
我观察到的是连接错误(未找到服务器)ResponseUri
为空且WebResponse
的标头包含0
个项目。
修改
ResponseUri
不是null,而是OriginalString
为空
这样做是否安全:
catch (WebException ex)
{
switch (ex.Response.StatusCode)
{
...
case HttpStatusCode.NotFound:
if (ex.Response.ResponseUri == null
|| string.IsNullOrEmpty(httpWebResponse.ResponseUri.OriginalString))
DoServerNotFound();
else
DoServerReturned404();
答案 0 :(得分:0)
在进行网络通话之前,为什么不使用NetworkInterface.GetIsNetworkAvailable()
查看是否存在活动的网络连接。否则,你最终会等待什么并浪费一个电话。如果存在连接且呼叫仍然失败,则表示这是Web服务的问题。
我在我的应用程序中使用它,如果没有连接,我不打扰打电话。
由于
最大
答案 1 :(得分:0)
如果你有'未找到'的例外情况请求帮助。
catch (WebException ex)
{
using (WebResponse webResponse = ex.Response)
{
HttpWebResponse httpResponse = (HttpWebResponse)webResponse;
using (Stream data = webResponse.GetResponseStream())
using (var reader = new StreamReader(data))
{
string string = reader.ReadToEnd();
}
}
}