WebRequest.Method Egenskap

Definition

När det åsidosättas i en underordnade klass hämtar eller anger du den protokollmetod som ska användas i den här begäran.

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

Egenskapsvärde

Den protokollmetod som ska användas i den här begäran.

Undantag

Om egenskapen inte åsidosättas i en underordnad klass görs alla försök att hämta eller ange egenskapen.

Exempel

I följande exempel anges Method egenskapen till POST för att indikera att begäran kommer att publicera data till målvärden.

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

Kommentarer

Caution

WebRequest, HttpWebRequest, ServicePoint, och WebClient är föråldrade och du bör inte använda dem för ny utveckling. Använd HttpClient i stället.

När den åsidosättas i en underordnad Method klass innehåller egenskapen den begärandemetod som ska användas i den här begäran.

Note

Klassen WebRequest är en abstract klass. Det faktiska beteendet WebRequest för instanser vid körning bestäms av den underordnade klassen som returneras av WebRequest.Create metoden. Mer information om standardvärden och undantag finns i dokumentationen för underordnade klasser, till exempel HttpWebRequest och FileWebRequest.

Anteckningar till implementerare

Egenskapen Method kan innehålla valfri giltig begärandemetod för det implementerade protokollet. Standardvärdet måste ange en standardtransaktion för begäran/svar som inte kräver att protokollspecifika egenskaper anges.

Gäller för

Se även