有没有人知道通过int
方法从Windows表单应用程序发送string
,byte[]
或'POST'
的简单方法,并获取此数据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 ...我不知道问题是在客户端还是在服务器端。我需要做的是从客户端发送一个类似于" id = 7"通过POST
方法将其恢复到服务器上。我使用我自定义的身份验证用户,因此我需要在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, "");
}
结果完全一样......
答案 0 :(得分:1)
这是一个字符串示例。
var helloWorldString="HelloWorldKey=HelloWorldValue";
var array= Encoding.ASCII.GetBytes(helloWorldString);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:51146/MyPage.aspx");
request.Method = "POST";
request.ContentLength = array.Length;
request.ContentType = "application/x-www-form-urlencoded";
var Url = "http://localhost:51146/MyPage.aspx";
using(Stream postdata = request.GetRequestStream())
{
postdata.Write(array, 0, array.Length);
}
在服务器上,您可以使用Request.Form["HelloWorldKey"]
;
字节数组也是如此。将它们转换为客户端上的Base 64字符串,然后将它们转换回服务器上的字节数组。
最好使用HttpUtility
对字符串值进行编码,而不是手动执行。有关详细信息,请参阅this answer。