私は今、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
}
}