发送和接收“发布”数据

时间:2015-11-25 10:46:56

标签: c# asp.net

不知道有人可以帮助我,我想要实现的是将数据从一个站点发送到另一个站点:所以在我的“发送”站点中,我有一个运行以下内容的页面:

    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对象为空,我希望它包含来自发送页面的数据。显然我在某个地方会出现严重错误......有人可以帮忙吗?

谢谢, 克雷格

1 个答案:

答案 0 :(得分:0)

这是因为您没有发布表单,而是上传原始数据。

设置     request.ContentType =&#34;应用程序/ X WWW的窗体-urlencoded&#34 ;;

并填充您的帖子数据:

Key1=value1&key2=value2

您还应该考虑使用HttpServerUtility.UrlEncode

对值进行编码

如果您仍然不想发送原始数据,那么在服务器端,您应该读取传入的数据,如:(而不是Request.Form[]

byte[] requestRawData = Request.BinaryRead(Request.ContentLength);