data parser in C#

I am just trying to write a multipart parser but things getting complicated and want to ask if anyone knows of a ready parser in C#!

Just to make clear, I am writing my own "tiny" http server and need to pars multipart form-data too!

Thanks in advance, Gohlool


I open-sourced a C# Http form parser here.

This is slightly more flexible than the other one mentioned which is on CodePlex, since you can use it for both Multipart and non-Multipart form-data , and also it gives you other form parameters formatted in a Dictionary object.

This can be used as follows:

non-multipart

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"]);
    }
}

multipart

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);
    }
}

I've had some issues with parser that are based on string parsing particularly with large files I found it would run out of memory and fail to parse binary data.

To cope with these issues I've open sourced my own attempt at a C# multipart/form-data parser here

See my answer here for more information.


Check out the new MultipartStreamProvider and its subclasses (ie MultipartFormDataStreamProvider). You can create your own implementation too if none of the built in implementations are suitable for you use case.

链接地址: http://www.djcxy.com/p/75398.html

上一篇: 没有来自图像上传POST的响应数据

下一篇: 数据解析器在C#中