Bagikan melalui


HttpWebRequest.GetRequestStream Metode

Definisi

Mendapatkan objek Stream untuk digunakan untuk menulis data permintaan.

Overload

GetRequestStream()

Mendapatkan objek Stream untuk digunakan untuk menulis data permintaan.

GetRequestStream(TransportContext)

Mendapatkan objek Stream untuk digunakan untuk menulis data permintaan dan menghasilkan TransportContext yang terkait dengan aliran.

GetRequestStream()

Sumber:
HttpWebRequest.cs
Sumber:
HttpWebRequest.cs
Sumber:
HttpWebRequest.cs

Mendapatkan objek Stream untuk digunakan untuk menulis data permintaan.

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

Mengembalikan

Stream yang digunakan untuk menulis data permintaan.

Pengecualian

Properti Method adalah GET atau HEAD.

-atau-

KeepAlive true, AllowWriteStreamBufferingfalse, ContentLength -1, SendChunkedfalse, dan Method POST atau PUT.

Metode GetRequestStream() disebut lebih dari sekali.

-atau-

TransferEncoding diatur ke nilai dan SendChunkedfalse.

Validator cache permintaan menunjukkan bahwa respons untuk permintaan ini dapat dilayani dari cache; namun, permintaan yang menulis data tidak boleh menggunakan cache. Pengecualian ini dapat terjadi jika Anda menggunakan validator cache kustom yang salah diimplementasikan.

Abort() sebelumnya dipanggil.

-atau-

Periode waktu habis untuk permintaan kedaluwarsa.

-atau-

Terjadi kesalahan saat memproses permintaan.

Dalam aplikasi .NET Compact Framework, aliran permintaan dengan panjang konten nol tidak diperoleh dan ditutup dengan benar. Untuk informasi selengkapnya tentang menangani permintaan panjang konten nol, lihat Network Programming di .NET Compact Framework.

Contoh

Contoh kode berikut menggunakan metode GetRequestStream untuk mengembalikan instans aliran.

// 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()

Keterangan

Hati

WebRequest, HttpWebRequest, ServicePoint, dan WebClient usang, dan Anda tidak boleh menggunakannya untuk pengembangan baru. Gunakan HttpClient sebagai gantinya.

Metode GetRequestStream mengembalikan aliran yang akan digunakan untuk mengirim data untuk HttpWebRequest. Setelah objek Stream dikembalikan, Anda dapat mengirim data dengan HttpWebRequest dengan menggunakan metode Stream.Write.

Jika aplikasi perlu mengatur nilai properti ContentLength, maka ini harus dilakukan sebelum mengambil aliran.

Anda harus memanggil metode Stream.Close untuk menutup aliran dan merilis koneksi untuk digunakan kembali. Kegagalan untuk menutup aliran menyebabkan aplikasi Anda kehabisan koneksi.

Nota

Aplikasi Anda tidak dapat mencampur metode sinkron dan asinkron untuk permintaan tertentu. Jika Anda memanggil metode GetRequestStream, Anda harus menggunakan metode GetResponse untuk mengambil respons.

Nota

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Lihat juga

  • Elemen DefaultProxy (Pengaturan Jaringan)

Berlaku untuk

GetRequestStream(TransportContext)

Sumber:
HttpWebRequest.cs
Sumber:
HttpWebRequest.cs
Sumber:
HttpWebRequest.cs

Mendapatkan objek Stream untuk digunakan untuk menulis data permintaan dan menghasilkan TransportContext yang terkait dengan aliran.

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

Parameter

Mengembalikan

Stream yang digunakan untuk menulis data permintaan.

Pengecualian

Metode GetRequestStream() tidak dapat memperoleh Stream.

Metode GetRequestStream() disebut lebih dari sekali.

-atau-

TransferEncoding diatur ke nilai dan SendChunkedfalse.

Validator cache permintaan menunjukkan bahwa respons untuk permintaan ini dapat dilayani dari cache; namun, permintaan yang menulis data tidak boleh menggunakan cache. Pengecualian ini dapat terjadi jika Anda menggunakan validator cache kustom yang salah diimplementasikan.

Properti Method adalah GET atau HEAD.

-atau-

KeepAlive true, AllowWriteStreamBufferingfalse, ContentLength -1, SendChunkedfalse, dan Method POST atau PUT.

Abort() sebelumnya dipanggil.

-atau-

Periode waktu habis untuk permintaan kedaluwarsa.

-atau-

Terjadi kesalahan saat memproses permintaan.

Keterangan

Hati

WebRequest, HttpWebRequest, ServicePoint, dan WebClient usang, dan Anda tidak boleh menggunakannya untuk pengembangan baru. Gunakan HttpClient sebagai gantinya.

Metode GetRequestStream mengembalikan aliran yang akan digunakan untuk mengirim data untuk HttpWebRequest dan menghasilkan TransportContext yang terkait dengan aliran. Setelah objek Stream dikembalikan, Anda dapat mengirim data dengan HttpWebRequest dengan menggunakan metode Stream.Write.

Beberapa aplikasi yang menggunakan autentikasi Windows terintegrasi dengan perlindungan yang diperluas mungkin harus dapat mengkueri lapisan transportasi yang digunakan oleh HttpWebRequest untuk mengambil token pengikatan saluran (CBT) dari saluran TLS yang mendasar. Metode GetRequestStream menyediakan akses ke informasi ini untuk metode HTTP yang memiliki isi permintaan (POST dan permintaan PUT). Ini hanya diperlukan jika aplikasi menerapkan autentikasinya sendiri dan membutuhkan akses ke CBT.

Jika aplikasi perlu mengatur nilai properti ContentLength, maka ini harus dilakukan sebelum mengambil aliran.

Anda harus memanggil metode Stream.Close untuk menutup aliran dan merilis koneksi untuk digunakan kembali. Kegagalan untuk menutup aliran menyebabkan aplikasi Anda kehabisan koneksi.

Nota

Aplikasi Anda tidak dapat mencampur metode sinkron dan asinkron untuk permintaan tertentu. Jika Anda memanggil metode GetRequestStream, Anda harus menggunakan metode GetResponse untuk mengambil respons.

Nota

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Lihat juga

Berlaku untuk