Pregunta

He estado usando el siguiente código para obtener una respuesta simple web de Apache 2.2 en SilverLight en vano.

    private void bDoIt_Click(object sender, RoutedEventArgs e)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("/silverlight/TestPage2.html"));

        request.Method = "POST";
        request.ContentType = "text/xml";

        request.BeginGetRequestStream(new AsyncCallback(RequestProceed), request);
    }

    private void RequestProceed(IAsyncResult asuncResult)
    {
        HttpWebRequest request = (HttpWebRequest)asuncResult.AsyncState;

        StreamWriter postDataWriter = new StreamWriter(request.EndGetRequestStream(asuncResult));
        postDataWriter.Close();

        request.BeginGetResponse(new AsyncCallback(ResponceProceed), request);

    }

    private void ResponceProceed(IAsyncResult asuncResult)
    {
        HttpWebRequest request = (HttpWebRequest)asuncResult.AsyncState;

        HttpWebResponse responce = (HttpWebResponse)request.EndGetResponse(asuncResult);
        StreamReader responceReader = new StreamReader(responce.GetResponseStream());

        string responceString = responceReader.ReadToEnd();

        txtData.Text = responceString;
    }

¿Hay alguien sin un mejor método de hacer esto?

¿Fue útil?

Solución

¿Ha tratado WebClient ? Esto existe en Silverlight, y podría hacer la vida más fácil. Es de suponer que querría UploadStringAsync .

También - Creo que es necesario utilizar y URL absoluta; Si no desea codificar (bastante razonable), se puede obtener a partir de su anfitrión:

string url = App.Current.Host.Source.AbsoluteUri;

A continuación, utilice los métodos de cadena / etc para hacer la correcta " http: //yoursite/whatever/your.page ";

Tenga en cuenta que sólo permite Silverlight (IIRC) conexiones con el sitio de acogida.

Otros consejos

Usted puede hacer la BeginGetResponse llamada como la primera llamada en su caso, la prueba de muestra, la BeginGetRequestStream llamada sólo es necesario si tiene la intención de pasar algunos datos de correo a la página solicitada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top