2009-08-02 19 views
10

Estoy muy sorprendido de ver HttpWebRequest no tiene un método cercano, pero su contraparte HttpWebResponse tiene. Me hace un poco confundido e inconveniente. :-)¿HttpWebRequest no tiene un método cercano?

Entonces, ¿solo tenemos que llamar Cerrar en respuesta y no hay necesidad de tratar con la solicitud? Mi preocupación es sobre fugas y una mejor eficiencia en el uso de los recursos. Estoy usando VSTS2008 + C# + .Net 3.5.

+1

(he eliminado el duplicado y me he fusionado en el contenido adicional) –

+0

lo has preguntado ** nuevamente ** (ahora eliminado)? No hagas eso, por favor ... –

Respuesta

29

Sí, solo necesita llamarlo al objeto de respuesta.

Una solicitud no hace absolutamente nada por sí misma. No abre un socket o algo. Solo contiene algunos datos y puedes ignorarlos y tirarlos si no los necesitas (es un recurso administrado puro y el recolector de basura se encargará de ello). Las cosas reales suceden después de llamar a uno de los métodos GetResponse.

+0

Hola, ¿hay alguna documentación de MS u otro lugar "oficial" que explique el funcionamiento interno de HttpWebRequest/Response? – tamberg

+0

@tamberg puede obtener el código fuente y leerlo usted mismo: http://referencesource.microsoft.com/netframework.aspx –

+0

Parece que no funciona. Al menos para una conexión SSL, no parece enviar la cerca del servidor. – Tuntable

1

El método de cierre al que se refiere en HttpWebResponse sirve para enviar la respuesta finalizada al servidor web. En el objeto HttpWebRequest, todo el contenido está disponible cuando comienza el procesamiento, por lo que no es necesario cerrar y comunicarse con un servidor.

4

Una analogía:

Si quiero hablar con usted y ya estoy seguro de que quiero hablar con usted simplemente voy a llamar a su nombre (Solicitud). Sin embargo, depende de usted decidir cuándo, cómo y qué responderme (Respuesta). Así que tendrás más control sobre la comunicación que yo, acabo de comenzar.

Cuestiones relacionadas