【发布时间】:2019-11-27 14:02:51
【问题描述】:
我正在尝试弄清楚如何使用 Grapevine 传递二进制数据。我找到了这个链接:https://github.com/sukona/Grapevine/issues/208,但没有看到任何后续代码。我还没有找到任何其他指示如何做到这一点。
【问题讨论】:
-
请求/响应是http,二进制数据必须转换为Base 64 String。
我正在尝试弄清楚如何使用 Grapevine 传递二进制数据。我找到了这个链接:https://github.com/sukona/Grapevine/issues/208,但没有看到任何后续代码。我还没有找到任何其他指示如何做到这一点。
【问题讨论】:
请求上的Payload 属性是一个助手,它将底层HttpListenerRequest 的InputStream 属性读入字符串进行解析。只要之前的路由没有读取过这个流(它是一个只读流),你就可以访问这个流并直接读取它。
public static void GetBinaryData(HttpContext context)
{
if (context.Request is HttpRequest request)
{
var input = request.Advanced.InputStream;
// Do what you want to get your data out of the stream
}
}
从那里,您可以读取流并根据需要进行转换。
【讨论】: