HttpWebRequest.GetResponse Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne une réponse d'une ressource Internet.
public:
override System::Net::WebResponse ^ GetResponse();
public override System.Net.WebResponse GetResponse ();
override this.GetResponse : unit -> System.Net.WebResponse
Public Overrides Function GetResponse () As WebResponse
Retours
WebResponse contenant la réponse de la ressource Internet.
Exceptions
Le flux est déjà utilisé par un appel précédent à BeginGetResponse(AsyncCallback, Object).
- ou -
TransferEncoding est défini sur une valeur, et SendChunked a pour valeur false
.
Method a pour valeur GET ou HEAD, et soit ContentLength est supérieur ou égal à zéro, soit SendChunked a pour valeur true
.
- ou -
KeepAlive est true
, AllowWriteStreamBuffering est false
, ContentLength a la valeur -1, SendChunked est false
, et Method est POST ou PUT.
- ou -
La HttpWebRequest a un corps d’entité, mais la méthode GetResponse() est appelée sans que soit appelée la méthode GetRequestStream().
- ou -
Le ContentLength est supérieur à zéro, mais l’application n’écrit pas toutes les données promises.
Le validateur du cache de demande a indiqué que la réponse à cette demande peut être fournie à partir du cache ; toutefois, cette demande comprend des données à envoyer au serveur. Les demandes qui envoient des données ne doivent pas utiliser le cache. Cette exception peut se produire si vous utilisez un validateur de cache personnalisé qui est implémenté de manière incorrecte.
Abort() a déjà été appelé.
- ou -
Le délai d’attente de la requête a expiré.
- ou -
Une erreur s’est produite lors du traitement de la demande.
Exemples
L’exemple de code suivant obtient la réponse pour une demande.
#using <System.dll>
using namespace System;
using namespace System::Net;
using namespace System::Text;
using namespace System::IO;
// Specify the URL to receive the request.
int main()
{
array<String^>^args = Environment::GetCommandLineArgs();
HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create(args[1]));
// Set some reasonable limits on resources used by this request
request->MaximumAutomaticRedirections = 4;
request->MaximumResponseHeadersLength = 4;
// Set credentials to use for this request.
request->Credentials = CredentialCache::DefaultCredentials;
HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
Console::WriteLine("Content length is {0}", response->ContentLength);
Console::WriteLine("Content type is {0}", response->ContentType);
// Get the stream associated with the response.
Stream^ receiveStream = response->GetResponseStream();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader^ readStream = gcnew StreamReader(receiveStream, Encoding::UTF8);
Console::WriteLine("Response stream received.");
Console::WriteLine(readStream->ReadToEnd());
response->Close();
readStream->Close();
}
/*
The output from this example will vary depending on the value passed into Main
but will be similar to the following:
Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>
*/
using System;
using System.Net;
using System.Text;
using System.IO;
public class Test
{
// Specify the URL to receive the request.
public static void Main (string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(args[0]);
// Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
// Set credentials to use for this request.
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine("Content length is {0}", response.ContentLength);
Console.WriteLine("Content type is {0}", response.ContentType);
// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
Console.WriteLine("Response stream received.");
Console.WriteLine(readStream.ReadToEnd());
response.Close();
readStream.Close();
}
}
/*
The output from this example will vary depending on the value passed into Main
but will be similar to the following:
Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>
*/
Imports System.Net
Imports System.Text
Imports System.IO
Public Class Test
' Specify the URL to receive the request.
Public Shared Sub Main(ByVal args() As String)
Dim request As HttpWebRequest = CType(WebRequest.Create(args(0)), HttpWebRequest)
' Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4
request.MaximumResponseHeadersLength = 4
' Set credentials to use for this request.
request.Credentials = CredentialCache.DefaultCredentials
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
Console.WriteLine("Content length is {0}", response.ContentLength)
Console.WriteLine("Content type is {0}", response.ContentType)
' Get the stream associated with the response.
Dim receiveStream As Stream = response.GetResponseStream()
' Pipes the stream to a higher level stream reader with the required encoding format.
Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)
Console.WriteLine("Response stream received.")
Console.WriteLine(readStream.ReadToEnd())
response.Close()
readStream.Close()
End Sub
End Class
'
'The output from this example will vary depending on the value passed into Main
'but will be similar to the following:
'
'Content length is 1542
'Content type is text/html; charset=utf-8
'Response stream received.
'...
'
'
Remarques
La GetResponse méthode retourne un WebResponse objet qui contient la réponse de la ressource Internet. L’instance réelle retournée est une HttpWebResponse, et peut être de typecast pour cette classe pour accéder aux propriétés propres à HTTP.
A ProtocolViolationException est levée dans plusieurs cas lorsque les propriétés définies sur la HttpWebRequest classe sont en conflit. Cette exception se produit si une application définit la ContentLength propriété et la propriété sur true
SendChunked , puis envoie une requête HTTP GET. Cette exception se produit si une application tente d’envoyer en bloc à un serveur qui prend uniquement en charge le protocole HTTP 1.0, où ce n’est pas pris en charge. Cette exception se produit si une application tente d’envoyer des données sans définir la propriété ou si est lorsque la ContentLengthSendChunked mise en mémoire tampon est désactivée et sur une connexion keepalive (la KeepAlive propriété est true
)false
.
Attention
Vous devez appeler la Close méthode pour fermer le flux et libérer la connexion. Si vous ne le faites pas, votre application risque de manquer de connexions.
Lorsque vous utilisez la méthode POST, vous devez obtenir le flux de demande, écrire les données à publier et fermer le flux. Cette méthode bloque l’attente de contenu à publier ; si aucun délai d’attente n’est défini et que vous ne fournissez pas de contenu, le thread appelant est bloqué indéfiniment.
Notes
Plusieurs appels pour renvoyer GetResponse le même objet de réponse ; la demande n’est pas rééditée.
Notes
Votre application ne peut pas mélanger des méthodes synchrones et asynchrones pour une demande particulière. Si vous appelez la GetRequestStream méthode, vous devez utiliser la GetResponse méthode pour récupérer la réponse.
Notes
Si un WebException est levée, utilisez les Response propriétés et Status de l’exception pour déterminer la réponse du serveur.
Notes
Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.
Notes
Pour des raisons de sécurité, les cookies sont désactivés par défaut. Si vous souhaitez utiliser des cookies, utilisez la CookieContainer propriété pour activer les cookies.
S’applique à
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour