none
Enviando dados para página web RRS feed

  • Pergunta

  • Estou experimentando enviar dados de uma app no Windows phone 7.5 para uma página web.  A página vai pegar esses dados e inseri-los num banco de dados para  uso posterior.

    O código que estou utilizando é o seguinte:

    using System;
    using System.IO;
    using System.Text;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using Microsoft.Phone.Controls;
    using System.Diagnostics;
    
    namespace SendData
    {
        public partial class MainPage : PhoneApplicationPage
        {
            // Constructor
            public MainPage()
            {
                InitializeComponent();            
            }
    
            private void GetRequestStreamCallback(IAsyncResult asynchronousResult)
            {
                HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
                System.IO.Stream postStream = request.EndGetRequestStream(asynchronousResult);
                string postData = "param1=value1&param2=value2";
                byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(postData);
                // Write to the request stream.
                postStream.Write(byteArray, 0, postData.Length);
                postStream.Close();
                // Start the asynchronous operation to get the response
                request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
            }
    
            private void GetResponseCallback(IAsyncResult asynchronousResult)
            {
                HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
                HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
                Stream streamResponse = response.GetResponseStream();
                StreamReader streamRead = new StreamReader(streamResponse);
                string responseString = streamRead.ReadToEnd();
                // Close the stream object
                streamResponse.Close();
                streamRead.Close();
                // Release the HttpWebResponse
                response.Close();
                Action<string> act = new Action<string>(DisplayResponse);
                this.Dispatcher.BeginInvoke(act, responseString);
            }
    
            void DisplayResponse(string msg)
            {
                GainersText.Text = msg;
            }
    
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                // Prepare web request...
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost/mapa");
                myRequest.Method = "POST";
                myRequest.ContentType = "application/x-www-form-urlencoded";
                myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest);
            }               
    
        }
    }

    <?php error_reporting(E_ALL); $link = mysql_connect('localhost', 'root', ''); mysql_select_db('test_mapa'); mysql_query("insert into nomes(nome) values('{$_POST['username']}')");

    /* quero visualizar o conteúdo de $_POST recuperado pelo objeto response */ var_dump($_POST); /* create table nomes( id int unsigned not null auto_increment primary key, nome varchar(60)not null ); */


    O código c# encontrei em pesquisas que fiz no google. Ainda entendo pouco de C#, por isso não consegui identifiacar porque $_POST é uma arrai vazio e consequentemente mysql_query falha por não localizar o índice $_POST['username'].

    Uma luz, pessoal!


    • Editado vieira.rafael segunda-feira, 3 de dezembro de 2012 00:49 Correção ortográfica.
    segunda-feira, 3 de dezembro de 2012 00:46

Respostas

  • Faltou indicar qual arquivo deveria ser acessado.

     private void button1_Click(object sender, RoutedEventArgs e)
            {
                // Prepare web request...
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://localhost/mapa/index.php");
                myRequest.Method = "POST";
                myRequest.ContentType = "application/x-www-form-urlencoded";
                myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest);
            }    

    • Marcado como Resposta vieira.rafael segunda-feira, 3 de dezembro de 2012 16:04
    segunda-feira, 3 de dezembro de 2012 16:04