Я сейчас только изучаю разработку Windows Phone 7, я использую C#, так как это язык, с которым я наиболее знаком.Windows Phone 7 Потребность Webservice Данные JSON
На данный момент я хотел бы создать следующий поток: введите текст в текстовое поле и нажмите кнопку -> я покажу ему окно с сообщением «Подождите» и отправьте текст текстового поля в WebService (возможно, через HTTPS), когда получен ответ WebService, я покажу ему еще один экран, основываясь на данных ответа.
Этот WebService извлекает только данные JSON, поэтому мне нужно разобрать данные JSON.
Я думаю, что я уже могу отправить данные и получить ответ от сервера, однако я не знаю, как показать это окно загрузки, спрячьте его при допинге и запустите новый экран (блокируя доступ к этому первому).
На кнопку мыши:
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
}
}