1

次のコードを使用して、SilverLightのApache2.2から簡単なWeb応答を取得しました。

    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;
    }

誰かがこれを行うためのより良い方法はありませんか?

4

2 に答える 2

1

試しましたWebClientか?これはSilverlightに存在し、作業を楽にする可能性があります。おそらくあなたが欲しいでしょうUploadStringAsync

また、絶対URLを使用する必要があると思います。(かなり合理的に)ハードコーディングしたくない場合は、次の場所からホストを取得できます。

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

次に、string / etcメソッドを使用して、正しい「http://yoursite/whatever/your.page」を作成します。

Silverlightは、ホストサイトへの(IIRC)接続のみを許可することに注意してください。

于 2009-02-23T10:50:56.503 に答える
0

サンプル テスト ケースの最初の呼び出しとしてBeginGetResponse呼び出しを実行できます。BeginGetRequestStream呼び出しは、要求されたページに POST データを渡す場合にのみ必要です。

于 2009-02-23T13:08:54.377 に答える