Aracılığıyla paylaş


HttpWebRequest.GetRequestStream Yöntem

Tanım

İstek verilerini yazmak için kullanılacak bir Stream nesnesi alır.

Aşırı Yüklemeler

GetRequestStream()

İstek verilerini yazmak için kullanılacak bir Stream nesnesi alır.

GetRequestStream(TransportContext)

İstek verilerini yazmak için kullanılacak bir Stream nesnesi alır ve akışla ilişkili TransportContext çıkışını alır.

GetRequestStream()

Kaynak:
HttpWebRequest.cs
Kaynak:
HttpWebRequest.cs
Kaynak:
HttpWebRequest.cs

İstek verilerini yazmak için kullanılacak bir Stream nesnesi alır.

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

Döndürülenler

İstek verilerini yazmak için kullanılacak bir Stream.

Özel durumlar

Method özelliği GET veya HEAD'dir.

-veya-

KeepAlive true, AllowWriteStreamBufferingfalse, ContentLength -1, SendChunkedfalseve Method POST veya PUT şeklindedir.

GetRequestStream() yöntemi birden çok kez çağrılır.

-veya-

TransferEncoding bir değere ayarlanır ve SendChunkedfalse.

İstek önbelleği doğrulayıcısı, bu istek için yanıtın önbellekten sunulabileceğini belirtti; ancak, veri yazan isteklerin önbelleği kullanmaması gerekir. Bu özel durum, yanlış uygulanan bir özel önbellek doğrulayıcı kullanıyorsanız oluşabilir.

Abort() daha önce çağrıldı.

-veya-

İsteğin zaman aşımı süresi doldu.

-veya-

İstek işlenirken bir hata oluştu.

.NET Compact Framework uygulamasında, sıfır içerik uzunluğuna sahip bir istek akışı alınmadı ve doğru şekilde kapatıldı. Sıfır içerik uzunluğu isteklerini işleme hakkında daha fazla bilgi için bkz. .NET Compact FrameworkAğ Programlama.

Örnekler

Aşağıdaki kod örneği, akış örneği döndürmek için GetRequestStream yöntemini kullanır.

// 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 = String::Concat( "firstone= ", inputData );
ASCIIEncoding^ encoding = gcnew ASCIIEncoding;
array<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 ("\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()

Açıklamalar

Dikkat

WebRequest, HttpWebRequest, ServicePointve WebClient kullanım dışıdır ve bunları yeni geliştirme için kullanmamalısınız. Bunun yerine HttpClient kullanın.

GetRequestStream yöntemi, HttpWebRequestiçin veri göndermek için kullanılacak bir akış döndürür. Stream nesnesi döndürüldükten sonra, Stream.Write yöntemini kullanarak HttpWebRequest ile veri gönderebilirsiniz.

Bir uygulamanın ContentLength özelliğinin değerini ayarlaması gerekiyorsa, akışı almadan önce bunun yapılması gerekir.

Akışı kapatmak ve bağlantıyı yeniden kullanmak üzere serbest bırakmak için Stream.Close yöntemini çağırmanız gerekir. Akışın kapatılamaması uygulamanızın bağlantılarının kapanmasına neden olur.

Not

Uygulamanız belirli bir istek için zaman uyumlu ve zaman uyumsuz yöntemleri karıştıramaz. GetRequestStream yöntemini çağırırsanız, yanıtı almak için GetResponse yöntemini kullanmanız gerekir.

Not

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET FrameworkAğ İzleme.

Ayrıca bkz.

  • DefaultProxy Öğesi (Ağ Ayarları)

Şunlara uygulanır

GetRequestStream(TransportContext)

Kaynak:
HttpWebRequest.cs
Kaynak:
HttpWebRequest.cs
Kaynak:
HttpWebRequest.cs

İstek verilerini yazmak için kullanılacak bir Stream nesnesi alır ve akışla ilişkili TransportContext çıkışını alır.

public:
 System::IO::Stream ^ GetRequestStream([Runtime::InteropServices::Out] System::Net::TransportContext ^ % context);
public System.IO.Stream GetRequestStream (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

Parametreler

Döndürülenler

İstek verilerini yazmak için kullanılacak bir Stream.

Özel durumlar

GetRequestStream() yöntemi Streamalamadı.

GetRequestStream() yöntemi birden çok kez çağrılır.

-veya-

TransferEncoding bir değere ayarlanır ve SendChunkedfalse.

İstek önbelleği doğrulayıcısı, bu istek için yanıtın önbellekten sunulabileceğini belirtti; ancak, veri yazan isteklerin önbelleği kullanmaması gerekir. Bu özel durum, yanlış uygulanan bir özel önbellek doğrulayıcı kullanıyorsanız oluşabilir.

Method özelliği GET veya HEAD'dir.

-veya-

KeepAlive true, AllowWriteStreamBufferingfalse, ContentLength -1, SendChunkedfalseve Method POST veya PUT şeklindedir.

Abort() daha önce çağrıldı.

-veya-

İsteğin zaman aşımı süresi doldu.

-veya-

İstek işlenirken bir hata oluştu.

Açıklamalar

Dikkat

WebRequest, HttpWebRequest, ServicePointve WebClient kullanım dışıdır ve bunları yeni geliştirme için kullanmamalısınız. Bunun yerine HttpClient kullanın.

GetRequestStream yöntemi, HttpWebRequest için veri göndermek için kullanılacak bir akış döndürür ve akışla ilişkili TransportContext verir. Stream nesnesi döndürüldükten sonra, Stream.Write yöntemini kullanarak HttpWebRequest ile veri gönderebilirsiniz.

Genişletilmiş koruma ile tümleşik Windows kimlik doğrulaması kullanan bazı uygulamaların, temel alınan TLS kanalından kanal bağlama belirtecini (CBT) almak için HttpWebRequest tarafından kullanılan aktarım katmanını sorgulayabilmesi gerekebilir. GetRequestStream yöntemi, istek gövdesi (POST ve PUT istekleri) olan HTTP yöntemleri için bu bilgilere erişim sağlar. Bu yalnızca uygulama kendi kimlik doğrulamasını uyguluyorsa ve CBT'ye erişmesi gerekiyorsa gereklidir.

Bir uygulamanın ContentLength özelliğinin değerini ayarlaması gerekiyorsa, akışı almadan önce bunun yapılması gerekir.

Akışı kapatmak ve bağlantıyı yeniden kullanmak üzere serbest bırakmak için Stream.Close yöntemini çağırmanız gerekir. Akışın kapatılamaması uygulamanızın bağlantılarının kapanmasına neden olur.

Not

Uygulamanız belirli bir istek için zaman uyumlu ve zaman uyumsuz yöntemleri karıştıramaz. GetRequestStream yöntemini çağırırsanız, yanıtı almak için GetResponse yöntemini kullanmanız gerekir.

Not

Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET FrameworkAğ İzleme.

Ayrıca bkz.

Şunlara uygulanır