HttpListener - 如何发送一个HTTP引发WebException 304“未修改”错误返回到浏览器?
-
25-09-2019 - |
题
我如何模仿引发WebException 304错误返回到浏览器,如果我使用HttpListener?
这是我已经接收到请求到我HttpListener,然后将所得HttpListenerContext,然后从该点如何将我模拟/安排一个HTTP“304未修改”响应于被有效地通过发送回浏览器HttpListenerContext 。响应?
编辑:
我尝试以下,但是我在尝试WebException.Status复制到HttpWebResponse.StatusCode(状态代码必须完全三位数)错误。任何想法如何纠正呢?
catch (WebException ex)
{
listenerContext.Response.StatusCode = (int)ex.Status; //ERROR: The status code must be exactly three digits
listenerContext.Response.StatusDescription = ex.Message;
listenerContext.Response.Close();
感谢
解决方案
我认为有其与:
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
int statusCode = (int) ((HttpWebResponse) ex.Response).StatusCode;
listenerContext.Response.StatusCode = statusCode;
listenerContext.Response.StatusDescription = ex.Message;
log("WARNING", uri, "WebException/ProtocolError: " + ex.GetType() + " - " + ex.Message);
}
else
{
log("ERROR", uri, "WebException - " + ex.GetType() + " - " + ex.Message);
}
listenerContext.Response.Close();
}
不隶属于 StackOverflow