Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wp8 HttpWebRequest POST未发送POST值_C#_Windows Phone 7_Post_Windows Phone 8_Httpwebrequest - Fatal编程技术网

C# wp8 HttpWebRequest POST未发送POST值

C# wp8 HttpWebRequest POST未发送POST值,c#,windows-phone-7,post,windows-phone-8,httpwebrequest,C#,Windows Phone 7,Post,Windows Phone 8,Httpwebrequest,我在发送post值时遇到了一个HttpWebRequest,我不知道问题出在哪里 希望有人能在这方面帮助我 这是我的密码 private async void loggingIn(string url, string postdata) { if (NetworkInterface.GetIsNetworkAvailable()) { try { var request = W

我在发送post值时遇到了一个HttpWebRequest,我不知道问题出在哪里

希望有人能在这方面帮助我

这是我的密码

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);
    }
private异步void登录(字符串url、字符串postdata)
{
if(NetworkInterface.GetIsNetworkAvailable())
{
尝试
{
var request=WebRequest.Create(新Uri(url))作为HttpWebRequest;
request.Method=“POST”;
byte[]data=Encoding.UTF8.GetBytes(postdata);
request.ContentLength=data.Length;
使用(var requestStream=await Task.Factory.fromsync(request.BeginGetRequestStream,request.EndGetRequestStream,request))
{
wait requestStream.WriteAsync(数据,0,数据.Length);
}
WebResponse responseObject=await Task.Factory.FromAsync(request.BeginGetResponse,request.EndGetResponse,request);
var responseStream=responseObject.GetResponseStream();
var sr=新的StreamReader(responseStream);
接收到字符串=等待sr.ReadToEndAsync();
MessageBox.Show(已接收);
}
抓住
{
}
}
}
私有无效按钮\u单击(对象发送者,路由目标e)
{
字符串url=“localhost/test.php”;
字符串password=passwordBoxLogin.password;
字符串username=usernameBoxLogin.Text;
字符串postdata=“password=“+password+”&username=“+username;
登录(url、postdata);
}
问题是我的服务器没有从POST请求接收任何值。 但我确实收到了服务器的响应

这就是我用来检查php服务器上的代码的方法

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

我得到的唯一回报就是-

提前感谢您帮助我:)

它刚刚开始工作,没有任何变化


目前案件已结案

我这样修改了你的代码 希望它确实对你有用

    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;

    }

试试这个。这可能对你有帮助

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)
         {
         }
     }