【发布时间】:2015-04-24 13:42:21
【问题描述】:
有人知道通过'POST' 方法从Windows 窗体应用程序发送int、string 或byte[] 并在ASP.NET WebForm 中获取此数据的简单方法吗?
所以,事实上:
Form1 (data) -→ (data) WebPage1.aspx
这是我现在的代码中的内容: 客户端:
String idtostring = "id=" + opid.ToString();
intarray = Encoding.ASCII.GetBytes(idtostring);
startlog(intarray);
private void startlog(byte[] array)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:51146/MyPage.aspx");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = array.Length;
var Url = "http://localhost:51146/MyPage.aspx";
wb.Navigate(Url, true);
Stream postdata = request.GetRequestStream();
postdata.Write(array, 0, array.Length);
postdata.Close();
}
服务器端:
private String getpostdata()
{
return Request.Form["id"];
}
这返回null...我不知道问题是在客户端还是在服务器端。我需要做的是通过POST 方法从客户端发送一个看起来像“id = 7”的数据并将其返回到服务器上。我正在使用自定义身份验证用户的 id,因此我需要在 Web 浏览器中显示用户将被验证的会话。
更新: 我不确定 Request.Form 是否适合观看...
查看这张图片,它显示了我通过断点得到的结果(我是新手,所以暂时无法发布图片)→http://i.stack.imgur.com/3VTyL.png
我刚试过这个:
private void startlog(byte[] array)
{
var Url = "http://localhost:51146/MyPage.aspx";
wb.Navigate(Url, "_blank", array, "");
}
而且结果一模一样……
【问题讨论】:
-
嗯,网络表单可以读取表单数据。 Win Forms 拥有发布数据的库。 你尝试过什么?因为您编写问题的方式基本上是在要求我们为您编写代码。这不是我们来这里的目的。
-
我试过这个地方有什么:stackoverflow.com/questions/29842443/… 但由于问题太多,一小时后我没有更多选择,所以我需要把它弄起来。 .
-
在您的帖子中展示您的作品。然后我们可以帮助纠正任何问题。描述你的尝试是如何失败的。
-
我正在逐步编辑它,以便您可以看到我一直在尝试的内容;)
-
您只是将字节写入请求,但并未将它们包含在
x-www-form-urlencoded格式中。不要将字节写入请求,而是将它们转换为 Base 64 字符串并将该字符串作为x-www-form-urlencoded的一部分嵌入。在服务器端,将 base 64 字符串转换为字节数组。您选择了最困难的数据类型开始:字符串将更容易理解将表单数据发布到服务器的概念。一旦你理解了这一点,你就可以开始使用 int 和 byte 数组了。