Jef*_*ito 21 c# lua coronasdk nancy
我正在使用Corona SDK将数据发布到我的C#服务器:
headers["Content-Type"] = "application/x-www-form-urlencoded"
headers["Accept-Language"] = "en-US"
local body = "color=red&size=small"
local params = {}
params.headers = headers
params.body = body
network.request( host .. "/UpdateHand", "POST", nwListener, params )
Run Code Online (Sandbox Code Playgroud)
我在服务器上收到一条消息:
Post["/UpdateHand"] = x =>
{
Console.WriteLine("Received ...");
return "Ok";
};
Run Code Online (Sandbox Code Playgroud)
但是当我检查数据时(当我在其上放置一个断点)时,我看不到我的数据所在的位置(即params.body或params.headers).我该如何提取这些信息?
我应该根据Corona上的文档正确发布它:http://docs.coronalabs.com/daily/api/library/network/request.html
Chr*_*dal 34
帖子数据在
this.Request.Body
Run Code Online (Sandbox Code Playgroud)
如果您有合适的类型,可以使用模型绑定将数据反序列化为它:
var x = this.Bind<YourType>();
Run Code Online (Sandbox Code Playgroud)
Dan*_*ams 13
南希有一个延伸.您需要为其包含命名空间.
using Nancy.Extensions;
var text = Context.Request.Body.AsString();
Run Code Online (Sandbox Code Playgroud)
我喜欢这是多么简洁,是南希的超级简单路径的一部分.
但要小心!此方法将流保留在末尾,因此后续调用将返回空字符串.要解决此问题,请务必立即重置流,如下所示:
Request.Body.Seek(0, SeekOrigin.Begin);
Run Code Online (Sandbox Code Playgroud)
Nancy 2.0应该对此进行更正,以便默认情况下重置流位置.
https://github.com/NancyFx/Nancy/pull/2158
小智 7
这实际上很有效:
var body = this.Request.Body;
int length = (int) body.Length; // this is a dynamic variable
byte[] data = new byte[length];
body.Read(data, 0, length);
Console.WriteLine(System.Text.Encoding.Default.GetString(data));
Run Code Online (Sandbox Code Playgroud)