WebRequest.Method Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Po zastąpieniu w klasie potomnej pobiera lub ustawia metodę protokołu, która ma być używana w tym żądaniu.
public:
abstract property System::String ^ Method { System::String ^ get(); void set(System::String ^ value); };
public:
virtual property System::String ^ Method { System::String ^ get(); void set(System::String ^ value); };
public abstract string Method { get; set; }
public virtual string Method { get; set; }
member this.Method : string with get, set
Public MustOverride Property Method As String
Public Overridable Property Method As String
Wartość właściwości
Metoda protokołu używana w tym żądaniu.
Wyjątki
Jeśli właściwość nie zostanie zastąpiona w klasie potomnej, zostanie podjęta próba pobrania lub ustawienia właściwości.
Przykłady
Poniższy przykład ustawia właściwość Method na POST, aby wskazać, że żądanie będzie publikować dane na hoście docelowym.
#using <System.dll>
using namespace System;
using namespace System::Net;
using namespace System::IO;
using namespace System::Text;
using namespace System::Threading;
public ref class RequestState
{
public:
// This class stores the request state of the request.
WebRequest^ request;
RequestState()
{
request = nullptr;
}
};
ref class WebRequest_BeginGetRequeststream
{
public:
static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );
static void ReadCallback( IAsyncResult^ asynchronousResult )
{
RequestState^ myRequestState = dynamic_cast<RequestState^>(asynchronousResult->AsyncState);
WebRequest^ myWebRequest = myRequestState->request;
// End of the Asynchronus request.
Stream^ streamResponse = myWebRequest->EndGetRequestStream( asynchronousResult );
// Create a string that is to be posted to the uri.
Console::WriteLine( "Please enter a string to be posted:" );
String^ postData = Console::ReadLine();
// Convert the string into a Byte array.
array<Byte>^byteArray = Encoding::UTF8->GetBytes( postData );
// Write data to the stream.
streamResponse->Write( byteArray, 0, postData->Length );
streamResponse->Close();
allDone->Set();
}
};
int main()
{
// Create a new request to the mentioned URL.
WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" );
// Create an instance of the RequestState and assign 'myWebRequest' to its request field.
RequestState^ myRequestState = gcnew RequestState;
myRequestState->request = myWebRequest;
myWebRequest->ContentType = "application/x-www-form-urlencoded";
// Set the 'Method' prperty to 'POST' to post data to a Uri.
myRequestState->request->Method = "POST";
// Start the Asynchronous 'BeginGetRequestStream' method call.
IAsyncResult^ r = dynamic_cast<IAsyncResult^>(myWebRequest->BeginGetRequestStream( gcnew AsyncCallback( WebRequest_BeginGetRequeststream::ReadCallback ), myRequestState ));
WebRequest_BeginGetRequeststream::allDone->WaitOne();
WebResponse^ myWebResponse = myWebRequest->GetResponse();
Console::WriteLine( "The String* entered has been posted." );
Console::WriteLine( "Please wait for the response..." );
Stream^ streamResponse = myWebResponse->GetResponseStream();
StreamReader^ streamRead = gcnew StreamReader( streamResponse );
array<Char>^readBuff = gcnew array<Char>(256);
int count = streamRead->Read( readBuff, 0, 256 );
Console::WriteLine( "The contents of the HTML page are " );
while ( count > 0 )
{
String^ outputData = gcnew String( readBuff,0,count );
Console::Write( outputData );
count = streamRead->Read( readBuff, 0, 256 );
}
streamResponse->Close();
streamRead->Close();
// Release the HttpWebResponse Resource.
myWebResponse->Close();
}
using System;
using System.Net;
using System.IO;
using System.Text;
using System.Threading;
public class RequestState
{
// This class stores the request state of the request.
public WebRequest request;
public RequestState()
{
request = null;
}
}
class WebRequest_BeginGetRequeststream
{
public static ManualResetEvent allDone= new ManualResetEvent(false);
static void Main()
{
// Create a new request to the mentioned URL.
WebRequest myWebRequest= WebRequest.Create("http://www.contoso.com");
// Create an instance of the RequestState and assign
// 'myWebRequest' to it's request field.
RequestState myRequestState = new RequestState();
myRequestState.request = myWebRequest;
myWebRequest.ContentType="application/x-www-form-urlencoded";
// Set the 'Method' property to 'POST' to post data to a Uri.
myRequestState.request.Method="POST";
// Start the Asynchronous 'BeginGetRequestStream' method call.
IAsyncResult r=(IAsyncResult) myWebRequest.BeginGetRequestStream(
new AsyncCallback(ReadCallback),myRequestState);
// Pause the current thread until the async operation completes.
Console.WriteLine("main thread waiting...");
allDone.WaitOne();
// Assign the response object of 'WebRequest' to a 'WebResponse' variable.
WebResponse myWebResponse = myWebRequest.GetResponse();
Console.WriteLine("The string has been posted.");
Console.WriteLine("Please wait for the response...");
Stream streamResponse = myWebResponse.GetResponseStream();
StreamReader streamRead = new StreamReader( streamResponse );
Char[] readBuff = new Char[256];
int count = streamRead.Read( readBuff, 0, 256 );
Console.WriteLine("\nThe contents of the HTML page are ");
while (count > 0)
{
String outputData = new String(readBuff, 0, count);
Console.Write(outputData);
count = streamRead.Read(readBuff, 0, 256);
}
// Close the Stream Object.
streamResponse.Close();
streamRead.Close();
// Release the HttpWebResponse Resource.
myWebResponse.Close();
}
private static void ReadCallback(IAsyncResult asynchronousResult)
{
RequestState myRequestState =(RequestState) asynchronousResult.AsyncState;
WebRequest myWebRequest = myRequestState.request;
// End the Asynchronous request.
Stream streamResponse = myWebRequest.EndGetRequestStream(asynchronousResult);
// Create a string that is to be posted to the uri.
Console.WriteLine("Please enter a string to be posted:");
string postData = Console.ReadLine();
// Convert the string into a byte array.
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Write the data to the stream.
streamResponse.Write(byteArray,0,postData.Length);
streamResponse.Close();
allDone.Set();
}
}
Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Threading
Public Class RequestState
' This class stores the request state of the request.
Public request As WebRequest
Public Sub New()
request = Nothing
End Sub
End Class
Class WebRequest_BeginGetRequeststream
Public Shared allDone As New ManualResetEvent(False)
Shared Sub Main()
' Create a new request.
Dim myWebRequest As WebRequest = WebRequest.Create("http://www.contoso.com/codesnippets/next.asp")
' Create an instance of the RequestState and assign
' myWebRequest' to it's request field.
Dim myRequestState As New RequestState()
myRequestState.request = myWebRequest
myWebRequest.ContentType = "application/x-www-form-urlencoded"
' Set the 'Method' property to 'POST' to post data to a Uri.
myRequestState.request.Method = "POST"
' Start the asynchronous 'BeginGetRequestStream' method call.
Dim r As IAsyncResult = CType(myWebRequest.BeginGetRequestStream(AddressOf ReadCallback, myRequestState), IAsyncResult)
' Pause the current thread until the async operation completes.
allDone.WaitOne()
' Send the Post and get the response.
Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
Console.WriteLine(ControlChars.Cr + "The string has been posted.")
Console.WriteLine("Please wait for the response....")
Dim streamResponse As Stream = myWebResponse.GetResponseStream()
Dim streamRead As New StreamReader(streamResponse)
Dim readBuff(256) As [Char]
Dim count As Integer = streamRead.Read(readBuff, 0, 256)
Console.WriteLine(ControlChars.Cr + "The contents of the HTML page are ")
While count > 0
Dim outputData As New [String](readBuff, 0, count)
Console.WriteLine(outputData)
count = streamRead.Read(readBuff, 0, 256)
End While
' Close the Stream Object.
streamResponse.Close()
streamRead.Close()
' Release the HttpWebResponse Resource.
myWebResponse.Close()
End Sub
Private Shared Sub ReadCallback(asynchronousResult As IAsyncResult)
Dim myRequestState As RequestState = CType(asynchronousResult.AsyncState, RequestState)
Dim myWebRequest As WebRequest = myRequestState.request
' End the request.
Dim streamResponse As Stream = myWebRequest.EndGetRequestStream(asynchronousResult)
' Create a string that is to be posted to the uri.
Console.WriteLine(ControlChars.Cr + "Please enter a string to be posted:")
Dim postData As String = Console.ReadLine()
Dim encoder As New ASCIIEncoding()
' Convert the string into a byte array.
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
' Write the data to the stream.
streamResponse.Write(byteArray, 0, postData.Length)
streamResponse.Close()
' Allow the main thread to resume.
allDone.Set()
End Sub
End Class
Uwagi
Ostrożność
WebRequest
, HttpWebRequest
, ServicePoint
i WebClient
są przestarzałe i nie należy ich używać do tworzenia nowych aplikacji. Zamiast tego użyj HttpClient.
Po zastąpieniu klasy potomnej właściwość Method zawiera metodę żądania do użycia w tym żądaniu.
Nuta
Klasa WebRequest jest klasą abstract
. Rzeczywiste zachowanie wystąpień WebRequest w czasie wykonywania jest określane przez klasę potomną zwracaną przez metodę WebRequest.Create. Aby uzyskać więcej informacji na temat wartości domyślnych i wyjątków, zobacz dokumentację klas potomnych, takich jak HttpWebRequest i FileWebRequest.
Uwagi dotyczące implementowania
Właściwość Method może zawierać dowolną prawidłową metodę żądania dla zaimplementowanego protokołu. Wartość domyślna musi podać domyślną transakcję żądania/odpowiedzi, która nie wymaga ustawienia właściwości specyficznych dla protokołu.