WebRequest.Method Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cuando se invalida en una clase descendiente, obtiene o establece el método de protocolo que se va a usar en esta solicitud.
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
Valor de propiedad
Método de protocolo que se va a usar en esta solicitud.
Excepciones
Si la propiedad no se invalida en una clase descendiente, se realiza cualquier intento de obtener o establecer la propiedad .
Ejemplos
En el ejemplo siguiente se establece la propiedad Method en POST para indicar que la solicitud publicará datos en el host de destino.
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
Comentarios
Cautela
WebRequest, HttpWebRequest, ServicePointy WebClient están obsoletos y no debe usarlos para el nuevo desarrollo. Use HttpClient en su lugar.
Cuando se reemplaza en una clase descendiente, la propiedad Method contiene el método de solicitud que se va a usar en esta solicitud.
Nota
La clase WebRequest es una clase abstract. El comportamiento real de las instancias de WebRequest en tiempo de ejecución viene determinado por la clase descendiente devuelta por el método WebRequest.Create. Para obtener más información sobre los valores predeterminados y las excepciones, consulte la documentación de las clases descendientes, como HttpWebRequest y FileWebRequest.
Notas a los implementadores
La propiedad Method puede contener cualquier método de solicitud válido para el protocolo implementado. El valor predeterminado debe proporcionar una transacción de solicitud/respuesta predeterminada que no requiera que se establezcan propiedades específicas del protocolo.