【发布时间】:2014-02-20 00:51:16
【问题描述】:
这是我的网络服务网址 http://www.newsquizapp.com/webservice/get_question
参数: 1. device_id 2. quiz_type
方法:发帖
我已经检索到 device_id 和 quiz_type 但我的问题是如何发送 device_id 和 quiz_type 以便将设备 ID 存储在网络服务中。
void SendPost()
{
var url = "http://www.newsquizapp.com/webservice/get_question";
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);
}
void GetRequestStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest webRequest = (HttpWebRequest)callbackResult.AsyncState;
Stream postStream = webRequest.EndGetRequestStream(callbackResult);
// static device id
string postData = "device_id=001&quiz_type=all";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
postStream.Write(byteArray, 0, byteArray.Length);
postStream.Close();
webRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), webRequest);
}
void GetResponseCallback(IAsyncResult callbackResult)
{
try
{
HttpWebRequest webRequest = (HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse response;
response = (HttpWebResponse)webRequest.EndGetResponse(callbackResult);
Stream streamResponse = response.GetResponseStream();
StreamReader streamReader = new StreamReader(streamResponse);
var Response = streamReader.ReadToEnd();
streamResponse.Close();
streamReader.Close();
response.Close();
}
catch (WebException e)
{
// Error treatment
// ...
}
}
public void MainPage_Loaded(object sender, RoutedEventArgs e)
{
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(download);
client.DownloadStringAsync(new Uri("http://www.newsquizapp.com/webservice/get_question"));
}
public void download(object sender, DownloadStringCompletedEventArgs e)
{
var objMain = JsonConvert.DeserializeObject<Main>(e.Result);
question = objMain.questions;
DisplayQuestion();
}
protected void DisplayQuestion()
{
rb1.Visibility = Visibility.Visible;
rb2.Visibility = Visibility.Visible;
rb3.Visibility = Visibility.Visible;
rb4.Visibility = Visibility.Visible;
Question objQue = question[counter];
txtquestion.Text = objQue.questionTitle;
rb1.Content = objQue.answers[0].answer;
rb2.Content = objQue.answers[1].answer;
rb3.Content = objQue.answers[2].answer;
if (objQue.answers.Count == 3)
{
rb4.Visibility = Visibility.Collapsed;
}
else
{
rb4.Visibility = Visibility.Visible;
rb4.Content = objQue.answers[3].answer;
}
}
protected void radio_checked(object sender, RoutedEventArgs e)
{
btnFinish.Visibility = Visibility.Collapsed;
btnSubmit.Visibility = Visibility.Visible;
}
protected void btnsubmit_click(object sender, RoutedEventArgs e)
{
Question que = question[counter];
var correctAnswerId = que.correctAnswerId;
string answer = string.Empty;
if (que.answers[0].answerId == correctAnswerId)
{
answer = que.answers[0].answer;
}
if (que.answers[1].answerId == correctAnswerId)
{
answer = que.answers[1].answer;
}
if (que.answers[2].answerId == correctAnswerId)
{
answer = que.answers[2].answer;
}
if (que.answers.Count == 3)
{
rb4.Visibility = Visibility.Collapsed;
}
else if (que.answers[3].answerId == correctAnswerId)
{
answer = que.answers[3].answer;
}
if (rb1.IsChecked == true && que.answers[0].answerId == correctAnswerId)
{
txtanswer.Text = que.answers[0].answer;
rb1.Visibility = Visibility.Collapsed;
rb2.Visibility = Visibility.Collapsed;
rb3.Visibility = Visibility.Collapsed;
rb4.Visibility = Visibility.Collapsed;
}
else if (rb1.IsChecked == true && que.answers[0].answerId != correctAnswerId)
{
rb1.Visibility = Visibility.Visible;
rb2.Visibility = Visibility.Collapsed;
rb3.Visibility = Visibility.Collapsed;
rb4.Visibility = Visibility.Collapsed;
txtanswer.Text = answer;
}
else if (rb2.IsChecked == true && que.answers[1].answerId == correctAnswerId)
{
txtanswer.Text = que.answers[1].answer;
rb1.Visibility = Visibility.Collapsed;
rb2.Visibility = Visibility.Collapsed;
rb3.Visibility = Visibility.Collapsed;
rb4.Visibility = Visibility.Collapsed;
}
else if (rb2.IsChecked == true && que.answers[1].answerId != correctAnswerId)
{
rb1.Visibility = Visibility.Collapsed;
rb2.Visibility = Visibility.Visible;
rb3.Visibility = Visibility.Collapsed;
rb4.Visibility = Visibility.Collapsed;
txtanswer.Text = answer;
}
else if (rb3.IsChecked == true && que.answers[2].answerId == correctAnswerId)
{
txtanswer.Text = que.answers[2].answer;
rb1.Visibility = Visibility.Collapsed;
rb2.Visibility = Visibility.Collapsed;
rb3.Visibility = Visibility.Collapsed;
rb4.Visibility = Visibility.Collapsed;
}
else if (rb3.IsChecked == true && que.answers[2].answerId != correctAnswerId)
{
rb1.Visibility = Visibility.Collapsed;
rb2.Visibility = Visibility.Collapsed;
rb3.Visibility = Visibility.Visible;
rb4.Visibility = Visibility.Collapsed;
txtanswer.Text = answer;
}
else if (que.answers.Count == 3)
{
rb4.Visibility = Visibility.Collapsed;
}
else if (rb4.IsChecked == true && que.answers[3].answerId == correctAnswerId)
{
txtanswer.Text = que.answers[3].answer;
rb1.Visibility = Visibility.Collapsed;
rb2.Visibility = Visibility.Collapsed;
rb3.Visibility = Visibility.Collapsed;
rb4.Visibility = Visibility.Collapsed;
}
else if (rb4.IsChecked == true && que.answers[3].answerId != correctAnswerId)
{
rb1.Visibility = Visibility.Collapsed;
rb2.Visibility = Visibility.Collapsed;
rb3.Visibility = Visibility.Collapsed;
rb4.Visibility = Visibility.Visible;
txtanswer.Text = answer;
}
btnNext.Visibility = Visibility.Visible;
}
protected void btnnext_click(object sender, RoutedEventArgs e)
{
counter++;
if (counter >= question.Count)
{
txtanswer.Text = "no more question right now....";
}
else
{
DisplayQuestion();
}
}
}
一旦用户设备 ID 存储在数据库中,如果用户关闭应用并再次打开它,他们将不会得到相同的问题...
【问题讨论】:
-
[Http Post for Windows Phone 8][1] 这是我以前从 WP 8 发布的内容。[1]:stackoverflow.com/questions/14698879/…
标签: web-services windows-phone-7 windows-phone-8