HttpListenerResponse.StatusCode Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает код состояния НТТР, который будет возвращен клиенту.
public:
property int StatusCode { int get(); void set(int value); };
public int StatusCode { get; set; }
member this.StatusCode : int with get, set
Public Property StatusCode As Integer
Значение свойства
Значение Int32, которое указывает код состояния HTTP для запрошенного ресурса. По умолчанию установлено OK, что показывает на успешность обработки сервером клиентского запроса и включение запрошенного ресурса в основной текст ответа.
Исключения
Данный объект закрыт.
Для операции присвоения указано недопустимое значение. Допустимые значения находятся в диапазоне от 100 до 999 включительно.
Примеры
В следующем примере кода показано задание значения этого свойства.
// When the client is not authenticated, there is no Identity.
if (context.User == null)
{
message.Append ("<HTML><BODY><p> Hello local user! </p></BODY></HTML>");
}
else
{
// Get the requester's identity.
System.Security.Principal.WindowsIdentity identity = WindowsIdentity.GetCurrent();
// Construct the response body.
message.AppendFormat ("<HTML><BODY><p> Hello {0}!<br/>",
identity.Name);
message.AppendFormat ("You were authenticated using {0}.</p>",
identity.AuthenticationType);
message.Append ("</BODY></HTML>");
}
// Configure the response.
HttpListenerResponse response = context.Response;
// Use the encoding from the response if one has been set.
// Otherwise, use UTF8.
System.Text.Encoding encoding = response.ContentEncoding;
if (encoding == null)
{
encoding = System.Text.Encoding.UTF8;
response.ContentEncoding = encoding;
}
byte[] buffer = encoding.GetBytes (message.ToString ());
response.ContentLength64 = buffer.Length;
response.StatusCode = (int) HttpStatusCode.OK;
response.StatusDescription = "OK";
response.ProtocolVersion = new Version ("1.1");
// Don't keep the TCP connection alive;
// We don't expect multiple requests from the same client.
response.KeepAlive = false;
// Write the response body.
System.IO.Stream stream = response.OutputStream;
stream.Write(buffer, 0, buffer.Length);
' When the client is not authenticated, there is no Identity.
If context.User Is Nothing Then
message.Append("<HTML><BODY><p> Hello local user! </p></BODY></HTML>")
Else
' Get the requester's identity.
Dim identity As System.Security.Principal.WindowsIdentity = WindowsIdentity.GetCurrent()
' Construct the response body.
message.AppendFormat("<HTML><BODY><p> Hello {0}!<br/>", identity.Name)
message.AppendFormat("You were authenticated using {0}.</p>", identity.AuthenticationType)
message.Append("</BODY></HTML>")
End If
' Configure the response.
Dim response As HttpListenerResponse = context.Response
' Use the encoding from the response if one has been set.
' Otherwise, use UTF8.
Dim encoding As System.Text.Encoding = response.ContentEncoding
If encoding Is Nothing Then
encoding = System.Text.Encoding.UTF8
response.ContentEncoding = encoding
End If
Dim buffer() As Byte = encoding.GetBytes(message.ToString())
response.ContentLength64 = buffer.Length
response.StatusCode = CInt(HttpStatusCode.OK)
response.StatusDescription = "OK"
response.ProtocolVersion = New Version("1.1")
' Don't keep the TCP connection alive
' We don't expect multiple requests from the same client.
response.KeepAlive = False
' Write the response body.
Dim stream As System.IO.Stream = response.OutputStream
stream.Write(buffer, 0, buffer.Length)
Комментарии
Клиенты используют код состояния, возвращенный сервером, чтобы решить, как продолжить. Значение OK указывает, что сервер успешно обработал запрос клиента и включил запрошенный ресурс в текст ответа. Другие распространенные коды состояния включают NotFound, указывающие, что запрошенный ресурс не найден на сервере, и NotModified, указывающие, что возврат запрошенного ресурса в тексте ответа не требуется, так как кэшированная копия ресурса клиента обновлена.
Полный список возможных кодов состояния см. в перечислении HttpStatusCode .