【发布时间】:2013-04-02 16:01:34
【问题描述】:
我需要向 HTTP 服务器发送一段文本。我需要确定是否已成功发送,而不是发送到强制门户或类似的。由于 HTTP 服务器的一些限制,我最好的方法是确保返回的 HTTP 状态码是 200。
如何获取服务器返回的 HTTP 状态码?
这是我当前的代码:
WebClient client = new WebClient();
client.Headers["Content-Type"] = "text/xml";
client.Encoding = Encoding.UTF8;
bool? result=null;
try
{
client.UploadStringAsync(server, "POST", data);
client.UploadStringCompleted += (s, e) =>
{
result=e.Error == null;
};
}
catch { }
目前e.Error 将在服务器返回 400-500 错误代码时设置,但如果服务器返回 300 系列 HTTP 状态代码则不会设置。
【问题讨论】:
-
问题:您的服务器是否正确返回 HTTP 代码? e.Result 包含实际响应
-
@ADNow e.Result 当前将为空白如果成功。如果状态码为 200,则唯一表示成功。我们正在尝试检测手机是否位于强制门户中,但这会重定向所有流量
-
我认为 WebClient 被简化了。你能潜得更深吗?如果你使用 HttpWebRequest,你可以得到状态码 var response = we.Response as HttpWebResponse; var code = response.StatusCode;
-
@ADNow 做出比我会接受的答案,特别是如果您快速转换我现有的代码:)
标签: c# http windows-phone-8 windows-phone webclient