2014-01-07 3 views
0

Im вид застрял с HttpWebRequest при отправке сообщений, и я не знаю, в чем проблема.wp8 HttpWebRequest POST не отправляет значения по

Надеюсь, кто-нибудь сможет мне помочь.

это мой код

private async void loggingIn(string url, string postdata) 
    { 
     if (NetworkInterface.GetIsNetworkAvailable()) 
     { 
      try 
      { 
       var request = WebRequest.Create(new Uri(url)) as HttpWebRequest; 
       request.Method = "POST"; 

       byte[] data = Encoding.UTF8.GetBytes(postdata); 
       request.ContentLength = data.Length; 
       using (var requestStream = await Task<Stream>.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, request)) 
       { 
        await requestStream.WriteAsync(data, 0, data.Length); 
       } 


       WebResponse responseObject = await Task<WebResponse>.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, request); 
       var responseStream = responseObject.GetResponseStream(); 
       var sr = new StreamReader(responseStream); 
       string received = await sr.ReadToEndAsync(); 
       MessageBox.Show(received); 
      } 
      catch 
      { 

      } 
     } 
    } 
    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     string url = "localhost/test.php"; 
     string password = passwordBoxLogin.Password; 
     string username = usernameBoxLogin.Text; 

     string postdata = "password=" + password +"&username="+username; 

     loggingIn(url,postdata); 
    } 

Проблема заключается в том, что мой сервер не получает значения из запроса POST. , но я получаю ответ от сервера.

это то, что я использую, чтобы проверить код на мой PHP сервер

<?php 
    echo $_POST['username']; 
    echo"-"; 
    echo $_POST['password']; 
?> 

единственное, что я получаю возвращенное в -

Заранее спасибо за помощь мне :)

Он просто начал работать без каких-либо изменений.

На данный момент закрытый чехол!

ответ

0

Я изменил вас код Как это Надеюсь, что это определенно работать для вас

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     string url = "localhost/test.php"; 
     string password = passwordBoxLogin.Password; 
     string username = usernameBoxLogin.Text; 
     string postdata = "password=" + password +"&username="+username; 

     bool isNetwork = NetworkInterface.GetIsNetworkAvailable(); 
     if (!isNetwork) 
     { 
     } 
     else 
     { 
     try 
      { 

      WebClient webClient = new WebClient(); 
      webClient.Headers["Content-Type"] = "application/json"; // Your Application Header Content-Type 
      webClient.Encoding = Encoding.UTF8; 
      webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(proxy_UploadStringCompleted); 
      webClient.UploadStringAsync(new Uri(url), "POST", postdata ,null); 
      } 
      catch 
      { 
      } 
     } 

    } 

    private void proxy_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) 
    { 
     var response = e.Result; 

    } 
0

Попробуйте это. это может помочь вам.

private async void loggingIn(string url, string postdata) 
     { 
      if (NetworkInterface.GetIsNetworkAvailable()) 
      { 
       try 
       { 
       var request = HttpWebRequest.Create(url) as HttpWebRequest; 
       request.Method = "POST"; 
       request.Accept = "application/json"; 
       request.ContentType = "application/json"; 
       request.BeginGetRequestStream(loginRequest, request); 
       } 
       catch(Exception ex) 
       { 
       } 
     } 
    private void loginRequest(IAsyncResult asyncResult) 
     { 
     string postdata = "password=" + password +"&username="+username; 
     UTF8Encoding encoding = new UTF8Encoding(); 
     HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState; 
     Stream _body = request.EndGetRequestStream(asyncResult); 
     byte[] formBytes = encoding.GetBytes(postdata); 
     _body.Write(formBytes, 0, formBytes.Length); 
     _body.Close(); 
     request.BeginGetResponse(loginResponse, request); 
     } 

    private void loginResponse(IAsyncResult asyncResult) 
     { 
     try 
      { 
      HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState; 
      HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult); 
      HttpWebResponse httpResponse = (HttpWebResponse)response; 
      using (Stream data = response.GetResponseStream()) 
      using (var reader = new StreamReader(data)) 
      { 
      string received = await reader.ReadToEndAsync(); 
      MessageBox.Show(received); 
      } 
      } 
      catch(Exception ex) 
     { 
     } 
    } 
Смежные вопросы