提交html表单与文本区

本文关键字:文本区 表单 html 提交 | 更新日期: 2023-09-27 18:17:26

这是一个WindowsForm应用程序。我使用c#代码成功地从一个网站获取HTML字符串。

在HTML代码中,表单看起来像这样:
<form id="editform" name="editform" method="post" action="/blablabla/index.php?title=title1&action=submit" enctype="multipart/form-data">    
    <textarea tabindex='1' accesskey="," name="Textbox1" id="Textbox1" rows='25' cols='80' >
    item1;
    item2;
    ....
    </textarea>
    <input id="wpSave" name="wpSave" type="submit" tabindex="5" value="Save page" accesskey="s" title="Save your changes" />
</form>

我试图使用

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(URL);
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
...

这些方法可以成功地在"文本区域"内获取文本,但我坚持将编辑后的文本提交到原始网站。澄清一下,我想用我的WinForm应用程序在一个网站的HTML表单中编辑一个文本区域,并提交它。

使用c#修改"textarea"内的文本,并将更改后的文本提交到原始网站的最佳方法是什么?谢谢你。

提交html表单与文本区

修改自https://stackoverflow.com/a/19983672/1178781:

public static string postTextAre(string text, string postUrl) {
    HttpClient httpClient = new HttpClient();
    MultipartFormDataContent form = new MultipartFormDataContent();
    form.Add(new StringContent(text), "Textbox1");
    form.Add(new StringContent("Save page"), "wpSave");
    HttpResponseMessage response = await httpClient.PostAsync(postUrl, form);
    response.EnsureSuccessStatusCode();
    httpClient.Dispose();
    return response.Content.ReadAsStringAsync().Result;
}

如果你不想使用HttpClient,你可以重新使用https://stackoverflow.com/a/20000831/1178781的答案,只是调整代码,使它不上传图片-只需提交Textbox1的值。