原始请求正文内容

rma*_*res 13 nancy

我正在开发Nancy Web服务,它将从客户端收集数据,这些数据将发送这样的HTTP请求

POST /iclock/cdata?SN=3163602360001&table=OPERLOG&OpStamp=426433018 HTTP/1.1
Host: 218.108.223.49:9001
User-Agent: iClock Proxy/1.09
Connection: close
Content-Length: 4883
Accept: */*

OPLOG 0\tab 0\tab 2012-09-07 11:36:39\tab 0\tab 0\tab 0\tab 0
OPLOG 3\tab 0\tab 2012-09-07 11:36:42\tab 55\tab 0\tab 0\tab 0
Run Code Online (Sandbox Code Playgroud)

问题是,我找不到在Nancy模块中收集这些数据的方法.有没有办法在Nancy模块中获取原始请求正文内容?

Phi*_*ill 21

您可以.AsString()在body标签上使用以从客户端传递的原始文本返回有效内容流.

例如

var body = Request.Body.AsString();

  • 在Nancy 2.0中,它现在是`var body = RequestStream.FromStream(Request.Body).AsString();`扩展需要RequestStream.要求身体是蒸汽. (17认同)
  • 你必须包括`使用Nancy.Extensions;`来使用这个方法. (15认同)
  • 如果您已经从流中读取,请记住设置“ Request.Body.Position = 0”,否则将得到一个空字符串。 (2认同)

Jas*_*son 8

对于NancyFX 2.0,您需要将主体作为流读取.

var body = RequestStream.FromStream(Request.Body).AsString();

然后,这允许您将正文作为文本.