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
TransportContext에 대한 Stream입니다.
반환
요청 데이터를 쓰는 데 사용할 Stream입니다.
예외
현재 인스턴스에서 BeginGetRequestStream(AsyncCallback, Object)을 호출한 결과 asyncResult
가 반환되지 않은 경우
asyncResult
이(가) null
인 경우
이 메서드가 asyncResult
를 사용하여 이미 호출된 경우
요청이 완료되지 않아서 스트림을 사용할 수 없는 경우
설명
메서드는 EndGetRequestStream 메서드에서 시작한 BeginGetRequestStream 스트림에 대한 비동기 요청을 완료하고 스트림과 연결된 를 TransportContext 출력합니다. 개체가 Stream 반환된 후 메서드를 HttpWebRequest 사용하여 을 사용하여 Stream.Write 데이터를 보낼 수 있습니다.
확장 된 보호를 사용 하 여 통합된 Windows 인증을 사용 하는 일부 애플리케이션에서 사용 하는 전송 계층을 쿼리할 수 해야 HttpWebRequest 기본 TLS 채널에서의 CBT (채널 바인딩 토큰)를 검색 하기 위해. 메서드는 GetRequestStream 요청 본문(POST
및 PUT
요청)이 있는 HTTP 메서드에 대해 이 정보에 대한 액세스를 제공합니다. 애플리케이션에서 자체 인증을 구현 하는 CBT에 액세스 해야 하는 경우에 필요 합니다.
참고
애플리케이션의 값을 설정 해야 하는 경우는 ContentLength 속성을이 스트림을 검색 하 고 데이터를 기록 하기 전에 수행 해야 합니다.
주의
메서드를 Stream.Close 호출하여 스트림을 닫고 다시 사용할 연결을 해제해야 합니다. 스트림 닫기에 실패 하면 애플리케이션을 연결에서 실행 합니다.
참고
애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework의 네트워크 추적을 참조하세요.
추가 정보
- TransportContext
- GetChannelBinding(ChannelBindingKind)
- System.Security.Authentication.ExtendedProtection
- ChannelBinding
- 확장된 보호를 사용하는 Windows 통합 인증(Integrated Windows Authentication with Extended Protection)
적용 대상
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
인 경우
요청이 완료되지 않아서 스트림을 사용할 수 없는 경우
현재 인스턴스에서 BeginGetRequestStream(AsyncCallback, Object)을 호출한 결과 asyncResult
가 반환되지 않은 경우
이 메서드가 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
설명
메서드는 EndGetRequestStream 메서드에서 시작한 스트림에 대한 비동기 요청을 완료합니다 BeginGetRequestStream . 개체가 Stream 반환된 후 메서드를 HttpWebRequest 사용하여 을 사용하여 Stream.Write 데이터를 보낼 수 있습니다.
참고
스트림에 데이터를 쓰기 전에 속성 값을 ContentLength 설정해야 합니다.
주의
메서드를 Stream.Close 호출하여 스트림을 닫고 다시 사용할 연결을 해제해야 합니다. 스트림 닫기에 실패 하면 애플리케이션을 연결에서 실행 합니다.
참고
애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework의 네트워크 추적을 참조하세요.
적용 대상
.NET
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기