Как отправить "multipart / form-data" с помощью C# - 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 формат?

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

...