不知道有人可以帮助我,我想要实现的是将数据从一个站点发送到另一个站点:所以在我的“发送”站点中,我有一个运行以下内容的页面:
string message;
message = "DATA DATA DATA DATA!!!";
System.Net.WebRequest request = WebRequest.Create("http://clt-umbraco.test.clt.co.uk/storereceive/?data-response");
request.ContentType = "application/json";
request.Method = "POST";
request.Headers["X-Parse-Application-Id"] = "aaaaaaaaaaaaaaa";
request.Headers["X-Parse-REST-API-Key"] = "bbbbbbbbbbbbbbb";
byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes("{\"channels\": [\"\"], \"data\": { \"alert\": \" " + message + "\" } }");
string result = System.Convert.ToBase64String(buffer);
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();
WebResponse response = request.GetResponse();
//jsonString.Text = response;
reqstr = response.GetResponseStream();
StreamReader reader = new StreamReader(reqstr);
jsonString.Text = reader.ReadToEnd();
在我的接收网站/页面上,我在页面加载时有以下内容:
string[] keys = Request.Form.AllKeys;
for (int i = 0; i < keys.Length; i++)
{
Response.Write(keys[i] + ": " + Request.Form[keys[i]] + "<br>");
}
我可以看到此页面加载事件正在触发,但Request.Form.Allkeys对象为空,我希望它包含来自发送页面的数据。显然我在某个地方会出现严重错误......有人可以帮忙吗?
谢谢, 克雷格
答案 0 :(得分:0)
这是因为您没有发布表单,而是上传原始数据。
设置 request.ContentType =&#34;应用程序/ X WWW的窗体-urlencoded&#34 ;;
并填充您的帖子数据:
Key1=value1&key2=value2
您还应该考虑使用HttpServerUtility.UrlEncode
对值进行编码如果您仍然不想发送原始数据,那么在服务器端,您应该读取传入的数据,如:(而不是Request.Form[]
)
byte[] requestRawData = Request.BinaryRead(Request.ContentLength);