数据解析器在C#中
我只是想编写一个多部分分析器,但事情变得复杂,并且想问问任何人是否知道C#中的现成解析器!
为了说清楚,我正在编写自己的“微型”http服务器,并且还需要解析多部分表单数据!
在此先感谢Gohlool
我在这里开源了一个C#Http表单解析器。
这比CodePlex中提到的另一个稍微灵活一些,因为您可以将它用于Multipart和Non-Multipart form-data
,并且还可以为您提供格式化为Dictionary
对象的其他表单参数。
这可以使用如下:
非多
public void Login(Stream stream)
{
string username = null;
string password = null;
HttpContentParser parser = new HttpContentParser(stream);
if (parser.Success)
{
username = HttpUtility.UrlDecode(parser.Parameters["username"]);
password = HttpUtility.UrlDecode(parser.Parameters["password"]);
}
}
多
public void Upload(Stream stream)
{
HttpMultipartParser parser = new HttpMultipartParser(stream, "image");
if (parser.Success)
{
string user = HttpUtility.UrlDecode(parser.Parameters["user"]);
string title = HttpUtility.UrlDecode(parser.Parameters["title"]);
// Save the file somewhere
File.WriteAllBytes(FILE_PATH + title + FILE_EXT, parser.FileContents);
}
}
我在解析器方面遇到了一些问题,这些问题基于字符串解析,特别是对于大型文件,我发现它会耗尽内存,无法解析二进制数据。
为了解决这些问题,我已经在这里打开了一个C#multipart / form-data解析器的尝试
有关更多信息,请参阅我的答案。
查看新的MultipartStreamProvider及其子类(即MultipartFormDataStreamProvider)。 如果没有内置的实现适合您的用例,您也可以创建自己的实现。
链接地址: http://www.djcxy.com/p/75397.html上一篇: data parser in C#