0

this is my web service url http://www.newsquizapp.com/webservice/get_question

Parameter : 1. device_id 2. quiz_type

Method: post

i already retrieve device_id & quiz_type but my problem is how to send device_id & quiz_type so that the device id is store in web service.

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

once the user device id stores in database, they will not get the same question if user close the app & again open it...

rr11
  • 25
  • 1
  • 6
  • [Http Post for Windows Phone 8][1] This is what i used to post from WP 8. [1]: http://stackoverflow.com/questions/14698879/http-post-for-windows-phone-8 – rahulroy9202 Feb 19 '14 at 11:58

3 Answers3

0

Maybe a HTTPRequest is what you are looking for.

http://dotnet-snippets.de/snippet/simple-web-request-with-web-response/215

xmashallax
  • 1,673
  • 1
  • 17
  • 34
  • Can you specify the problem? Is the request being transmitted? Does the web service receive the request? Is there a problem in processing the request on the server side? – xmashallax Feb 19 '14 at 10:43
0

Http Post for Windows Phone 8

Check the answer from nemesisfixx. I found it helpful.

If you have access to the webservice code, you can modify it to carry the Device_uid as a url parameter and thus avoid all the extra work. I did so.

Community
  • 1
  • 1
rahulroy9202
  • 2,730
  • 3
  • 32
  • 45
  • thanks for the link but i don't understand what it really say. if you please post some sample code so that it will be helpful for me or if you find some error in my code please tell me because i think i am doing something wrong but not getting it – rr11 Feb 19 '14 at 12:48
0

If you just want to POST data to a web service you can use WebClient class. It is the simplest way to achieve what you are looking to do.

Example:

Uri uri = new Uri("http://www.newsquizapp.com/webservice/get_question");
string data = "device_id=123&quiz_type=all";
WebClient wc = new WebClient();
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
wc.UploadStringAsync(uri, data);
wc.UploadStringCompleted += wc_UploadComplete;

public void wc_UploadComplete(object sender, UploadStringCompletedEventArgs e)
{
   string result = e.Result.ToString();
   MessageBox.Show(result);
}

Try this out. Hope it helps.

Rishi Jasapara
  • 638
  • 9
  • 33