gpt4 book ai didi

c# - 在 C# 中提交 Web 表单并获取响应数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:11 26 4
gpt4 key购买 nike

我正在尝试编写一个 C# 应用程序,它可以自动将用户 ID、密码和登录名(提交“登录”按钮)发送到网站(示例 http://abc.com)并获取 Httprequest 中返回的数据。我怎么做?我坚持...感谢您的任何推荐! :D

最佳答案

我使用这些功能...
使用 first 可以传递一个包含参数名称和参数值的数组,使用 second 可以传递整个字符串。
请记住,如果之前在没有 javascript 代码的情况下执行 POST,则此方法有效(它返回您可以随意解析的 HTML 页面)...因此请仔细查看网页源代码。

public static string HttpPost(string url, object[] postData, string saveTo = "")
{
StringBuilder post = new StringBuilder();
for (int i = 0; i < postData.Length; i += 2)
post.Append(string.Format("{0}{1}={2}", i == 0 ? "" : "&", postData[i], postData[i + 1]));
return HttpPost(url, post.ToString(), saveTo);
}
public static string HttpPost(string url, string postData, string saveTo = "")
{
postData = postData.Replace("\r\n", "");
try
{
WebRequest req = WebRequest.Create(url);
byte[] send = Encoding.Default.GetBytes(postData);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
//req.ContentType = "text/xml;charset=\"utf-8\"";
req.ContentLength = send.Length;

Stream sout = req.GetRequestStream();
sout.Write(send, 0, send.Length);
sout.Flush();
sout.Close();

WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string returnvalue = sr.ReadToEnd();
if (!string.IsNullOrEmpty(saveTo))
File.WriteAllText(saveTo, returnvalue);

//Debug.WriteLine("{0}\n{1}", postData, returnvalue);
return returnvalue;
}
catch (Exception ex)
{
Debug.WriteLine("POST Error on {0}\n {1}", url, ex.Message);
return "";
}
}

关于c# - 在 C# 中提交 Web 表单并获取响应数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6813338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com