数据解析器在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#

下一篇: Reading file input from a multipart/form