HttpWebRequest.IfModifiedSince Propriedade
Definição
Obtém ou define o valor do cabeçalho HTTP If-Modified-Since.Gets or sets the value of the If-Modified-Since HTTP header.
public:
property DateTime IfModifiedSince { DateTime get(); void set(DateTime value); };
public DateTime IfModifiedSince { get; set; }
member this.IfModifiedSince : DateTime with get, set
Public Property IfModifiedSince As DateTime
Valor da propriedade
Um DateTime que contém o conteúdo do cabeçalho HTTP If-Modified-Since.A DateTime that contains the contents of the If-Modified-Since HTTP header.
Exemplos
O exemplo de código a seguir verifica a IfModifiedSince propriedade.The following code example checks the IfModifiedSince property.
// Create a new 'Uri' object with the mentioned string.
Uri^ myUri = gcnew Uri( "http://www.contoso.com" );
// Create a new 'HttpWebRequest' object with the above 'Uri' object.
HttpWebRequest^ myHttpWebRequest = dynamic_cast<HttpWebRequest^>(WebRequest::Create( myUri ));
// Create a new 'DateTime' object.
DateTime targetDate = DateTime::Now;
// Set a target date of a week ago
targetDate.AddDays(-7.0);
myHttpWebRequest->IfModifiedSince = targetDate;
try
{
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse^ myHttpWebResponse = dynamic_cast<HttpWebResponse^>(myHttpWebRequest->GetResponse());
Console::WriteLine( "Response headers \n {0}\n", myHttpWebResponse->Headers );
Stream^ streamResponse = myHttpWebResponse->GetResponseStream();
StreamReader^ streamRead = gcnew StreamReader( streamResponse );
array<Char>^readBuff = gcnew array<Char>(256);
int count = streamRead->Read( readBuff, 0, 256 );
Console::WriteLine( "\nThe contents of Html Page are : \n" );
while ( count > 0 )
{
String^ outputData = gcnew String( readBuff,0,count );
Console::Write( outputData );
count = streamRead->Read( readBuff, 0, 256 );
}
streamResponse->Close();
streamRead->Close();
// Release the HttpWebResponse Resource.
myHttpWebResponse->Close();
Console::WriteLine( "\nPress 'Enter' key to continue................." );
Console::Read();
}
catch ( WebException^ e )
{
if (e->Response)
{
if ( ((HttpWebResponse ^)e->Response)->StatusCode == HttpStatusCode::NotModified)
Console::WriteLine("\nThe page has not been modified since {0}", targetDate);
else
Console::WriteLine("\nUnexpected status code = {0}", ((HttpWebResponse ^)e->Response)->StatusCode);
}
else
Console::WriteLine("\nUnexpected Web Exception {0}" + e->Message);
}
// Create a new 'Uri' object with the mentioned string.
Uri myUri =new Uri("http://www.contoso.com");
// Create a new 'HttpWebRequest' object with the above 'Uri' object.
HttpWebRequest myHttpWebRequest= (HttpWebRequest)WebRequest.Create(myUri);
// Create a new 'DateTime' object.
DateTime targetDate = DateTime.Now;
// Set a target date of a week ago
targetDate.AddDays(-7.0);
myHttpWebRequest.IfModifiedSince = targetDate;
try
{
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
Console.WriteLine("Response headers for recently modified page\n{0}\n",myHttpWebResponse.Headers);
Stream streamResponse=myHttpWebResponse.GetResponseStream();
StreamReader streamRead = new StreamReader( streamResponse );
Char[] readBuff = new Char[256];
int count = streamRead.Read( readBuff, 0, 256 );
Console.WriteLine("\nThe contents of Html Page are : \n");
while (count > 0)
{
String outputData = new String(readBuff, 0, count);
Console.Write(outputData);
count = streamRead.Read(readBuff, 0, 256);
}
// Close the Stream object.
streamResponse.Close();
streamRead.Close();
// Release the HttpWebResponse Resource.
myHttpWebResponse.Close();
Console.WriteLine("\nPress 'Enter' key to continue.................");
Console.Read();
}
catch(WebException e)
{
if (e.Response != null)
{
if ( ((HttpWebResponse)e.Response).StatusCode == HttpStatusCode.NotModified)
Console.WriteLine("\nThe page has not been modified since "+targetDate);
else
Console.WriteLine("\nUnexpected status code = " + ((HttpWebResponse)e.Response).StatusCode);
}
else
{
Console.WriteLine("\nUnexpected Web Exception " + e.Message);
}
}
' Create a new 'Uri' object with the mentioned string.
Dim myUri As New Uri("http://www.contoso.com")
' Create a new 'HttpWebRequest' object with the above 'Uri' object.
Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(myUri), HttpWebRequest)
' Create a new 'DateTime' object.
Dim targetDate As DateTime = DateTime.Now
targetDate.AddDays(-7.0)
myHttpWebRequest.IfModifiedSince = targetDate
Try
' Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
Console.WriteLine("Response headers for recently modified page" + ControlChars.Cr + "{0}" + ControlChars.Cr, myHttpWebResponse.Headers)
Dim streamResponse As Stream = myHttpWebResponse.GetResponseStream()
Dim streamRead As New StreamReader(streamResponse)
Dim readBuff(256) As [Char]
Dim count As Integer = streamRead.Read(readBuff, 0, 256)
Console.WriteLine(ControlChars.Cr + "The contents of Html Page are : " + ControlChars.Cr)
While count > 0
Dim outputData As New [String](readBuff, 0, count)
Console.Write(outputData)
count = streamRead.Read(readBuff, 0, 256)
End While
' Close the Stream object.
streamResponse.Close()
streamRead.Close()
' Release the HttpWebResponse Resource.
myHttpWebResponse.Close()
Console.WriteLine(ControlChars.Cr + "Press 'Enter' key to continue.................")
Console.Read()
Catch e As WebException
If e.Response IsNot Nothing
If CType(e.Response,HttpWebResponse).StatusCode = HttpStatusCode.NotModified
Console.WriteLine((ControlChars.Cr + "The page has not been modified since " + targetDate))
Else
Console.WriteLine(ControlChars.Cr + "Unexpected status code = " + Ctype(e.Response,HttpWebResponse).StatusCode)
End If
Else
Console.WriteLine(ControlChars.Cr + "Unexpected Web Exception " + e.Message)
End If
End Try
Comentários
Se o If-Modified-Since cabeçalho for null , o valor de retorno será definido como DateTime.MinValue .If the If-Modified-Since header is null, then the return value will be set to DateTime.MinValue.
A IfModifiedSince propriedade é um System.DateTime objeto padrão e pode conter um System.DateTimeKind campo de DateTimeKind.Local , DateTimeKind.Utc ou DateTimeKind.Unspecified .The IfModifiedSince property is a standard System.DateTime object and can contain a System.DateTimeKind field of DateTimeKind.Local, DateTimeKind.Utc, or DateTimeKind.Unspecified. Qualquer tipo de tempo pode ser definido ao usar a IfModifiedSince propriedade.Any kind of time can be set when using the IfModifiedSince property. Se DateTimeKind.Unspecified for definido ou recuperado, a IfModifiedSince propriedade será considerada DateTimeKind.Local (hora local).If DateTimeKind.Unspecified is set or retrieved, the IfModifiedSince property is assumed to be DateTimeKind.Local (local time).
As classes no System.Net namespace sempre gravam a IfModifiedSince Propriedade na conexão durante a transmissão na forma padrão usando o formato GMT (UTC).The classes in the System.Net namespace always write it out the IfModifiedSince property on the wire during transmission in standard form using GMT (Utc) format.
Se a IfModifiedSince propriedade for definida como DateTime.MinValue , o If-Modified-Since cabeçalho HTTP será removido da Headers propriedade e do WebHeaderCollection .If the IfModifiedSince property is set to DateTime.MinValue, then the If-Modified-Since HTTP header is removed from the Headers property and the WebHeaderCollection.
Se a IfModifiedSince propriedade for DateTime.MinValue , isso indica que o If-Modified-Since cabeçalho HTTP não está incluído na Headers propriedade e no WebHeaderCollection .If the IfModifiedSince property is DateTime.MinValue, this indicates that the If-Modified-Since HTTP header is not included in the Headers property and the WebHeaderCollection.
Observação
O valor dessa propriedade é armazenado em WebHeaderCollection.The value for this property is stored in WebHeaderCollection. Se WebHeaderCollection for definido, o valor da propriedade será perdido.If WebHeaderCollection is set, the property value is lost.
Se a IfModifiedSince propriedade for definida e o código de status 304 (não modificado) for retornado, um System.Net.WebException será lançado pelos BeginGetResponse métodos, GetResponse e EndGetResponse .If the IfModifiedSince property is set and 304 (Not Modified) status code is returned, then a System.Net.WebException will be thrown by the BeginGetResponse, GetResponse, and EndGetResponse methods.