HttpWebRequest.EndGetRequestStream 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
데이터를 쓰는 데 사용할 Stream 개체에 대한 비동기 요청을 종료합니다.
오버로드
EndGetRequestStream(IAsyncResult, TransportContext) |
데이터를 쓰는 데 사용할 Stream 개체에 대한 비동기 요청을 종료하고 스트림과 연결된 TransportContext 출력합니다. |
EndGetRequestStream(IAsyncResult) |
데이터를 쓰는 데 사용할 Stream 개체에 대한 비동기 요청을 종료합니다. |
EndGetRequestStream(IAsyncResult, TransportContext)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
데이터를 쓰는 데 사용할 Stream 개체에 대한 비동기 요청을 종료하고 스트림과 연결된 TransportContext 출력합니다.
public:
System::IO::Stream ^ EndGetRequestStream(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::TransportContext ^ % context);
public System.IO.Stream EndGetRequestStream (IAsyncResult asyncResult, out System.Net.TransportContext? context);
public System.IO.Stream EndGetRequestStream (IAsyncResult asyncResult, out System.Net.TransportContext context);
override this.EndGetRequestStream : IAsyncResult * TransportContext -> System.IO.Stream
Public Function EndGetRequestStream (asyncResult As IAsyncResult, ByRef context As TransportContext) As Stream
매개 변수
- asyncResult
- IAsyncResult
스트림에 대한 보류 중인 요청입니다.
- context
- TransportContext
반환
요청 데이터를 작성하는 데 사용할 Stream.
예외
asyncResult
BeginGetRequestStream(AsyncCallback, Object)호출에서 현재 인스턴스에서 반환되지 않았습니다.
asyncResult
null
.
이 메서드는 이전에 asyncResult
사용하여 호출되었습니다.
요청이 완료되지 않았고 스트림을 사용할 수 없습니다.
설명
주의
WebRequest
, HttpWebRequest
, ServicePoint
및 WebClient
사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.
EndGetRequestStream 메서드는 BeginGetRequestStream 메서드에서 시작한 스트림에 대한 비동기 요청을 완료하고 스트림과 연결된 TransportContext 출력합니다. Stream 개체가 반환된 후 Stream.Write 메서드를 사용하여 HttpWebRequest 데이터를 보낼 수 있습니다.
확장된 보호를 사용하여 Windows 통합 인증을 사용하는 일부 애플리케이션은 기본 TLS 채널에서 CBT(채널 바인딩 토큰)를 검색하기 위해 HttpWebRequest 사용하는 전송 계층을 쿼리할 수 있어야 할 수 있습니다.
GetRequestStream 메서드는 요청 본문(POST
및 PUT
요청)이 있는 HTTP 메서드에 대해 이 정보에 대한 액세스를 제공합니다. 애플리케이션이 자체 인증을 구현하고 CBT에 액세스해야 하는 경우에만 필요합니다.
메모
- 스트림에 데이터를 쓰기 전에 ContentLength 속성의 값을 설정해야 하는 경우
- 스트림을 닫고 다시 사용할 연결을 해제하려면 Stream.Close 메서드를 호출해야 합니다. 스트림을 닫지 않으면 애플리케이션에 연결이 부족합니다.
- 이 멤버는 애플리케이션에서 네트워크 추적을 사용하도록 설정할 때 추적 정보를 출력합니다. 자세한 내용은 .NET Framework
네트워크 추적을 참조하세요.
추가 정보
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- 확장된 보호 사용하여 Windows 통합 인증
적용 대상
EndGetRequestStream(IAsyncResult)
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
- Source:
- HttpWebRequest.cs
데이터를 쓰는 데 사용할 Stream 개체에 대한 비동기 요청을 종료합니다.
public:
override System::IO::Stream ^ EndGetRequestStream(IAsyncResult ^ asyncResult);
public override System.IO.Stream EndGetRequestStream (IAsyncResult asyncResult);
override this.EndGetRequestStream : IAsyncResult -> System.IO.Stream
Public Overrides Function EndGetRequestStream (asyncResult As IAsyncResult) As Stream
매개 변수
- asyncResult
- IAsyncResult
스트림에 대한 보류 중인 요청입니다.
반환
요청 데이터를 작성하는 데 사용할 Stream.
예외
asyncResult
null
.
요청이 완료되지 않았고 스트림을 사용할 수 없습니다.
asyncResult
BeginGetRequestStream(AsyncCallback, Object)호출에서 현재 인스턴스에서 반환되지 않았습니다.
이 메서드는 이전에 asyncResult
사용하여 호출되었습니다.
예제
다음 코드 예제에서는 EndGetRequestStream 메서드를 사용하여 스트림 인스턴스에 대한 비동기 요청을 종료합니다.
#using <System.dll>
using namespace System;
using namespace System::Net;
using namespace System::IO;
using namespace System::Text;
using namespace System::Threading;
ref class HttpWebRequestBeginGetRequest
{
public:
static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );
static void Main()
{
// Create a new HttpWebRequest object.
HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/example.aspx" ));
// Set the ContentType property.
request->ContentType = "application/x-www-form-urlencoded";
// Set the Method property to 'POST' to post data to the Uri.
request->Method = "POST";
// Start the asynchronous operation.
AsyncCallback^ del = gcnew AsyncCallback(GetRequestStreamCallback);
request->BeginGetRequestStream( del, request );
// Keep the main thread from continuing while the asynchronous
// operation completes. A real world application
// could do something useful such as updating its user interface.
allDone->WaitOne();
}
private:
static void GetRequestStreamCallback(IAsyncResult^ asynchronousResult)
{
HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(asynchronousResult->AsyncState);
// End the operation
Stream^ postStream = request->EndGetRequestStream(asynchronousResult);
Console::WriteLine("Please enter the input data to be posted:");
String^ postData = Console::ReadLine();
// Convert the string into a byte array.
array<Byte>^ByteArray = Encoding::UTF8->GetBytes(postData);
// Write to the request stream.
postStream->Write(ByteArray, 0, postData->Length);
postStream->Close();
// Start the asynchronous operation to get the response
AsyncCallback^ del = gcnew AsyncCallback(GetResponseCallback);
request->BeginGetResponse(del, request);
}
static void GetResponseCallback(IAsyncResult^ asynchronousResult)
{
HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(asynchronousResult->AsyncState);
// End the operation
HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->EndGetResponse(asynchronousResult));
Stream^ streamResponse = response->GetResponseStream();
StreamReader^ streamRead = gcnew StreamReader(streamResponse);
String^ responseString = streamRead->ReadToEnd();
Console::WriteLine(responseString);
// Close the stream object
streamResponse->Close();
streamRead->Close();
// Release the HttpWebResponse
response->Close();
allDone->Set();
}
};
void main()
{
HttpWebRequestBeginGetRequest::Main();
}
using System;
using System.Net;
using System.IO;
using System.Text;
using System.Threading;
class HttpWebRequestBeginGetRequest
{
private static ManualResetEvent allDone = new ManualResetEvent(false);
public static void Main(string[] args)
{
// Create a new HttpWebRequest object.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/example.aspx");
request.ContentType = "application/x-www-form-urlencoded";
// Set the Method property to 'POST' to post data to the URI.
request.Method = "POST";
// start the asynchronous operation
request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), request);
// Keep the main thread from continuing while the asynchronous
// operation completes. A real world application
// could do something useful such as updating its user interface.
allDone.WaitOne();
}
private static void GetRequestStreamCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
// End the operation
Stream postStream = request.EndGetRequestStream(asynchronousResult);
Console.WriteLine("Please enter the input data to be posted:");
string postData = Console.ReadLine();
// Convert the string into a byte array.
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Write to the request stream.
postStream.Write(byteArray, 0, postData.Length);
postStream.Close();
// Start the asynchronous operation to get the response
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
private static void GetResponseCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
// End the operation
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
string responseString = streamRead.ReadToEnd();
Console.WriteLine(responseString);
// Close the stream object
streamResponse.Close();
streamRead.Close();
// Release the HttpWebResponse
response.Close();
allDone.Set();
}
}
Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Threading
Class HttpWebRequestBeginGetRequest
Public Shared allDone As New ManualResetEvent(False)
Shared Sub Main()
' Create a new HttpWebRequest object.
Dim request As HttpWebRequest = CType(WebRequest.Create("http://www.contoso.com/example.aspx"), _
HttpWebRequest)
' Set the ContentType property.
request.ContentType = "application/x-www-form-urlencoded"
' Set the Method property to 'POST' to post data to the URI.
request.Method = "POST"
' Start the asynchronous operation.
Dim result As IAsyncResult = _
CType(request.BeginGetRequestStream(AddressOf GetRequestStreamCallback, request), _
IAsyncResult)
' Keep the main thread from continuing while the asynchronous
' operation completes. A real world application
' could do something useful such as updating its user interface.
allDone.WaitOne()
End Sub
Private Shared Sub GetRequestStreamCallback(ByVal asynchronousResult As IAsyncResult)
Dim request As HttpWebRequest = CType(asynchronousResult.AsyncState, HttpWebRequest)
' End the operation
Dim postStream As Stream = request.EndGetRequestStream(asynchronousResult)
Console.WriteLine("Please enter the input data to be posted:")
Dim postData As [String] = Console.ReadLine()
' Convert the string into byte array.
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
' Write to the stream.
postStream.Write(byteArray, 0, postData.Length)
postStream.Close()
' Start the asynchronous operation to get the response
Dim result As IAsyncResult = _
CType(request.BeginGetResponse(AddressOf GetResponseCallback, request), _
IAsyncResult)
End Sub
Private Shared Sub GetResponseCallback(ByVal asynchronousResult As IAsyncResult)
Dim request As HttpWebRequest = CType(asynchronousResult.AsyncState, HttpWebRequest)
' Get the response.
Dim response As HttpWebResponse = CType(request.EndGetResponse(asynchronousResult), _
HttpWebResponse)
Dim streamResponse As Stream = response.GetResponseStream()
Dim streamRead As New StreamReader(streamResponse)
Dim responseString As String = streamRead.ReadToEnd()
Console.WriteLine(responseString)
' Close Stream object.
streamResponse.Close()
streamRead.Close()
' Release the HttpWebResponse.
allDone.Set()
response.Close()
End Sub
End Class
설명
주의
WebRequest
, HttpWebRequest
, ServicePoint
및 WebClient
사용되지 않으므로 새 개발에 사용하면 안 됩니다. 대신 HttpClient 사용합니다.
EndGetRequestStream 메서드는 BeginGetRequestStream 메서드에서 시작한 스트림에 대한 비동기 요청을 완료합니다. Stream 개체가 반환된 후 Stream.Write 메서드를 사용하여 HttpWebRequest 데이터를 보낼 수 있습니다.
메모
- 스트림에 데이터를 쓰기 전에 ContentLength 속성의 값을 설정해야 합니다.
- 스트림을 닫고 다시 사용할 연결을 해제하려면 Stream.Close 메서드를 호출해야 합니다. 스트림을 닫지 않으면 애플리케이션에 연결이 부족합니다.
- 이 멤버는 애플리케이션에서 네트워크 추적을 사용하도록 설정할 때 추적 정보를 출력합니다. 자세한 내용은 .NET Framework
네트워크 추적을 참조하세요.
적용 대상
.NET