Как отправить "multipart / form-data" с помощью C# HTTPwebrequest или webclient - PullRequest
0 голосов
/ 07 мая 2020

У меня есть веб-страница большой формы (100 строк и 100 столбцов), и я хочу опубликовать некоторые данные на этом веб-сайте с помощью почтового запроса. Но когда я смотрю Fiddler, тип содержимого этого почтового запроса - «Content-Type: multipart / form-data; Border = ---- WebKitFormBoundaryZGLjsQc0BHm6iDFX». А вот некоторые данные из этого запроса:

------WebKitFormBoundaryZGLjsQc0BHm6iDFX
Content-Disposition: form-data; name="__VIEWSTATE"

W+jXmq1XPrLQXBiZKXge8D3Wwt4Y4KkBWoYscKGMFVHVWIUFEP7rKy5k+T1rCleJWd9BNH1N+fad4qAPu5EYQDbywOhQ9vb6OcxwBhgktW//be6Bf67kq+yT34l8vipo

------WebKitFormBoundaryZGLjsQc0BHm6iDFX
Content-Disposition: form-data; name="__VIEWSTATEGENERATOR"

2399BEAA

И вот мой метод публикации:

public static string Post(string url, string referer, string postData, CookieContainer cookies, string contentType, string accept)
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "POST";
        req.CookieContainer = cookies;
        req.Referer = referer;
        req.UserAgent = "";
        req.ContentType = contentType;
        req.Accept = accept;
        req.ContentLength = postData.Length;
        req.AllowAutoRedirect = false;

        Stream postStream = req.GetRequestStream();
        byte[] postBytes = Encoding.ASCII.GetBytes(postData);
        postStream.Write(postBytes, 0, postBytes.Length);
        postStream.Dispose();

        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        cookies.Add(resp.Cookies);
        StreamReader reader = new StreamReader(resp.GetResponseStream());
        string src = reader.ReadToEnd();
        reader.Dispose(); 


        return (src);
    }

Так есть ли способ на C# создать мои postData в multipart / form-data формат?

Большое спасибо за ответы. С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...