HttpWebRequest.GetRequestStream Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u een Stream object op dat moet worden gebruikt om aanvraaggegevens te schrijven.
Overloads
| Name | Description |
|---|---|
| GetRequestStream() |
Hiermee haalt u een Stream object op dat moet worden gebruikt om aanvraaggegevens te schrijven. |
| GetRequestStream(TransportContext) |
Hiermee haalt u een Stream object op dat moet worden gebruikt voor het schrijven van aanvraaggegevens en wordt de TransportContext uitvoer uitgevoerd die aan de stream is gekoppeld. |
GetRequestStream()
Hiermee haalt u een Stream object op dat moet worden gebruikt om aanvraaggegevens te schrijven.
public:
override System::IO::Stream ^ GetRequestStream();
public override System.IO.Stream GetRequestStream();
override this.GetRequestStream : unit -> System.IO.Stream
Public Overrides Function GetRequestStream () As Stream
Retouren
A Stream voor het schrijven van aanvraaggegevens.
Uitzonderingen
De Method eigenschap is GET of HEAD.
– of –
KeepAliveis , AllowWriteStreamBuffering is falsetrue, ContentLength is - 1, SendChunked is falseen Method is POST of PUT.
De GetRequestStream() methode wordt meerdere keren aangeroepen.
– of –
TransferEncoding is ingesteld op een waarde en SendChunked is false.
De validator voor de aanvraagcache geeft aan dat het antwoord voor deze aanvraag kan worden verwerkt vanuit de cache; aanvragen die gegevens schrijven, mogen echter niet gebruikmaken van de cache. Deze uitzondering kan optreden als u een aangepaste cachevalidator gebruikt die onjuist is geïmplementeerd.
Abort() werd eerder gebeld.
– of –
De time-outperiode voor de aanvraag is verlopen.
– of –
Er is een fout opgetreden tijdens het verwerken van de aanvraag.
In een .NET Compact Framework-toepassing is een aanvraagstroom met lengte nul inhoud niet verkregen en correct gesloten. Zie Network Programming in the .NET Compact Framework voor meer informatie over het verwerken van aanvragen met lengten van inhoud.
Voorbeelden
In het volgende codevoorbeeld wordt de GetRequestStream methode gebruikt om een streamexemplaren te retourneren.
// Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest.Method = "POST";
Console.WriteLine ("\nPlease enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :");
// Create a new string object to POST data to the Url.
string inputData = Console.ReadLine ();
string postData = "firstone=" + inputData;
ASCIIEncoding encoding = new ASCIIEncoding ();
byte[] byte1 = encoding.GetBytes (postData);
// Set the content type of the data being posted.
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
// Set the content length of the string being posted.
myHttpWebRequest.ContentLength = byte1.Length;
Stream newStream = myHttpWebRequest.GetRequestStream ();
newStream.Write (byte1, 0, byte1.Length);
Console.WriteLine ("The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest.ContentLength);
// Close the Stream object.
newStream.Close ();
' Set the 'Method' property of the 'Webrequest' to 'POST'.
myHttpWebRequest.Method = "POST"
Console.WriteLine(ControlChars.Cr + "Please enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :")
' Create a new string object to POST data to the Url.
Dim inputData As String = Console.ReadLine()
Dim postData As String = "firstone" + ChrW(61) + inputData
Dim encoding As New ASCIIEncoding()
Dim byte1 As Byte() = encoding.GetBytes(postData)
' Set the content type of the data being posted.
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"
' Set the content length of the string being posted.
myHttpWebRequest.ContentLength = byte1.Length
Dim newStream As Stream = myHttpWebRequest.GetRequestStream()
newStream.Write(byte1, 0, byte1.Length)
Console.WriteLine("The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest.ContentLength)
newStream.Close()
Opmerkingen
Caution
WebRequest, HttpWebRequest, ServicePointen WebClient zijn verouderd en u moet ze niet gebruiken voor nieuwe ontwikkeling. Gebruik in plaats daarvan HttpClient.
De GetRequestStream methode retourneert een stroom die moet worden gebruikt voor het verzenden van gegevens voor de HttpWebRequest. Nadat het Stream object is geretourneerd, kunt u gegevens verzenden met de HttpWebRequest methode Stream.Write .
Als een toepassing de waarde van de ContentLength eigenschap moet instellen, moet u dit doen voordat u de stream opzoekt.
U moet de Stream.Close methode aanroepen om de stream te sluiten en de verbinding vrij te geven voor hergebruik. Als de stream niet kan worden gesloten, kan uw toepassing geen verbindingen meer hebben.
Note
Uw toepassing kan geen synchrone en asynchrone methoden combineren voor een bepaalde aanvraag. Als u de GetRequestStream methode aanroept, moet u de GetResponse methode gebruiken om het antwoord op te halen.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in the .NET Framework voor meer informatie.
Zie ook
Van toepassing op
GetRequestStream(TransportContext)
Hiermee haalt u een Stream object op dat moet worden gebruikt voor het schrijven van aanvraaggegevens en wordt de TransportContext uitvoer uitgevoerd die aan de stream is gekoppeld.
public:
System::IO::Stream ^ GetRequestStream([Runtime::InteropServices::Out] System::Net::TransportContext ^ % context);
public System.IO.Stream GetRequestStream(out System.Net.TransportContext context);
override this.GetRequestStream : TransportContext -> System.IO.Stream
Public Function GetRequestStream (ByRef context As TransportContext) As Stream
Parameters
- context
- TransportContext
De TransportContext voor de Stream.
Retouren
A Stream voor het schrijven van aanvraaggegevens.
Uitzonderingen
De GetRequestStream() methode kan de Stream.
De GetRequestStream() methode wordt meerdere keren aangeroepen.
– of –
TransferEncoding is ingesteld op een waarde en SendChunked is false.
De validator voor de aanvraagcache geeft aan dat het antwoord voor deze aanvraag kan worden verwerkt vanuit de cache; aanvragen die gegevens schrijven, mogen echter niet gebruikmaken van de cache. Deze uitzondering kan optreden als u een aangepaste cachevalidator gebruikt die onjuist is geïmplementeerd.
De Method eigenschap is GET of HEAD.
– of –
KeepAliveis , AllowWriteStreamBuffering is falsetrue, ContentLength is - 1, SendChunked is falseen Method is POST of PUT.
Abort() werd eerder gebeld.
– of –
De time-outperiode voor de aanvraag is verlopen.
– of –
Er is een fout opgetreden tijdens het verwerken van de aanvraag.
Opmerkingen
Caution
WebRequest, HttpWebRequest, ServicePointen WebClient zijn verouderd en u moet ze niet gebruiken voor nieuwe ontwikkeling. Gebruik in plaats daarvan HttpClient.
De GetRequestStream methode retourneert een stream die moet worden gebruikt voor het verzenden van gegevens voor de HttpWebRequest stroom en voert de uitvoer uit die TransportContext aan de stream is gekoppeld. Nadat het Stream object is geretourneerd, kunt u gegevens verzenden met de HttpWebRequest methode Stream.Write .
Sommige toepassingen die gebruikmaken van geïntegreerde Windows authentication met uitgebreide beveiliging, moeten mogelijk een query kunnen uitvoeren op de transportlaag die wordt gebruikt door HttpWebRequest om het token voor kanaalbinding (CBT) op te halen uit het onderliggende TLS-kanaal. De GetRequestStream methode biedt toegang tot deze informatie voor HTTP-methoden met een aanvraagbody (POST en PUT aanvragen). Dit is alleen nodig als de toepassing zijn eigen verificatie implementeert en toegang nodig heeft tot de CBT.
Als een toepassing de waarde van de ContentLength eigenschap moet instellen, moet u dit doen voordat u de stream opzoekt.
U moet de Stream.Close methode aanroepen om de stream te sluiten en de verbinding vrij te geven voor hergebruik. Als de stream niet kan worden gesloten, kan uw toepassing geen verbindingen meer hebben.
Note
Uw toepassing kan geen synchrone en asynchrone methoden combineren voor een bepaalde aanvraag. Als u de GetRequestStream methode aanroept, moet u de GetResponse methode gebruiken om het antwoord op te halen.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in the .NET Framework voor meer informatie.
Zie ook
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- Geïntegreerde Windows-verificatie met uitgebreide beveiliging