0

私は今、Windows Phone 7 の開発を学んでいます。C# を使用しています。これは、私が最もよく知っている言語だからです。

今のところ、次のフローを作成したいと思います: ユーザーがテキスト フィールドに何かを入力してボタンを押す -> 「お待ちください」というメッセージ ボックスを表示し、テキスト フィールドのテキストを WebService に送信します (おそらく HTTPS 経由)。 WebService の応答を受信したら、応答データに基づいて別の画面を表示します。

この WebService は JSON データのみを取得するため、JSON データを解析する必要があります。

すでにデータを送信してサーバーから応答を取得できると思いますが、この「読み込み中」メッセージボックスを表示し、dode 時に非表示にし、新しい画面を開始する方法がわかりません (この最初の画面へのアクセスをブロックします)。 )。

ボタンクリック時:

        HttpWebRequest wr = (HttpWebRequest)System.Net.WebRequest.Create("http://example.com/");
        wr.Method = "POST";
        wr.ContentType = "application/x-www-form-urlencoded";

        wr.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), wr);

GetRequestStreamCallback メソッド:

    void GetRequestStreamCallback(IAsyncResult asynchronousResult)
    {
        HttpWebRequest wr = (HttpWebRequest)asynchronousResult.AsyncState;
        Stream postStream = wr.EndGetRequestStream(asynchronousResult);;
        byte[] byteArray = Encoding.UTF8.GetBytes("key=" + someText.Text);
        postStream.Write(byteArray, 0, byteArray.Length);
        postStream.Close();

        wr.BeginGetResponse(new AsyncCallback(GetResponseCallback), wr);
    }

GetResponseCallback メソッド:

    void GetResponseCallback(IAsyncResult asynchronousResult)
    {
        try
        {
            HttpWebRequest wr = (HttpWebRequest)asynchronousResult.AsyncState;
            HttpWebResponse response = (HttpWebResponse)wr.EndGetResponse(asynchronousResult);
            Stream streamResponse = response.GetResponseStream();
            StreamReader streamReader = new StreamReader(streamResponse);
            MessageBox.Show(streamReader.ReadToEnd()); // ???
            streamReader.Close();
            streamResponse.Close();
            response.Close();
        }
        catch (WebException e)
        {
            // Does nothing
        }
    }
4

1 に答える 1

1

進行状況の表示にどのような方法を使用する場合でも、サービスの呼び出しの直前にオンにし、myProgressIndicator.Show = true;次にコールバックで、他の処理が完了したらオフにしmyProgressIndicator.Show = false;ます。例外処理のためにも、キャッチでオフにすることを忘れないでください。

Coding4Funには進捗オーバーレイがあります。

于 2012-06-22T18:59:03.970 に答える