gpt4 book ai didi

c# - 在通用应用程序中使用 POST 方法发送登录数据

转载 作者:行者123 更新时间:2023-11-30 20:20:50 25 4
gpt4 key购买 nike

我在一个 Windows 应用程序商店工作,我正在尝试发送登录名和密码值,这是我的代码:

 try
{
string user = login.Text;
string pass = password.Password;

ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "login=" + user + "&mdp=" + pass;
byte[] data = encoding.GetBytes(postData);

WebRequest request = WebRequest.Create("myURL/login.php");
request.Method = "POST";

request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Dispose();

WebResponse response = request.GetResponse();
stream = response.GetResponseStream();

StreamReader sr = new StreamReader(stream);


sr.Dispose();
stream.Dispose();


}
catch (Exception ex)
{
ex.Message.ToString();
}

我有很多这样的错误:

'WebRequest' does not contain a definition for 'Content Length' and no extension method 'ContentLength' accepting a first argument of type 'WebRequest' was found (a using directive or an assembly reference is she missing ?)
'WebRequest' does not contain a definition for 'GetRequestStream' and no extension method 'GetRequestStream' accepting a first argument of type 'WebRequest' was found (a using directive or an assembly reference is she missing? )
'WebRequest' does not contain a definition for 'GetResponse' and no extension method 'GetResponse' accepting a first argument of type 'WebRequest' was found (a using directive or an assembly reference is she missing? )

我是通用 Windows 应用程序的新手,请问您是否知道如何更正我的代码以将登录数据发送到服务器谢谢帮助

最佳答案

如您所见,WebRequest .NET Core 中的类与传统的 .NET 略有不同。首先,我建议你看看HttpClient类,它是 UWP 中用于处理 HTTP 的默认类。

如果您想使用 WebRequest,为了设置 Content-Length header ,请使用 Headers 属性:

request.Headers["ContentLength"] = length;

为了获取请求和响应流,您需要使用 async方法、GetRequestStreamAsync 和 GetResponseAsync。同步方法不可用。

你的代码最终会是这样的:

string user = login.Text;
string user = login.Text;
string pass = password.Password;

ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "login=" + user + "&mdp=" + pass;
byte[] data = encoding.GetBytes(postData);

WebRequest request = WebRequest.Create("myURL/login.php");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers["ContentLength"] = data.Length.ToString();

using (Stream stream = await request.GetRequestStreamAsync()) {
stream.Write(data, 0, data.Length);
}

using (WebResponse response = await request.GetResponseAsync()) {
using (Stream stream = response.GetResponseStream()) {
using (StreamReader sr = new StreamReader(stream)) {
//
}
}
}

关于c# - 在通用应用程序中使用 POST 方法发送登录数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35272377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com