我要改进我的一个新项目,并且要添加的功能之一是可以在phpBB论坛板上发布新线程,但是可以这样做吗?如果是,该怎么办?谢谢。
最佳答案
我不会为您编写所有代码,但是我可以转储一些我已经构建的可以很好运行的代码。
一种方法是创建一个Web浏览器控件,并创建如下所示的内容:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlDocument doc = null;
doc = webBrowser1.Document;
//Find login text box and write user name
HtmlElement login = doc.GetElementById("username_or_email");
login.InnerText = this.login;
//Find password text box and write password
HtmlElement password = doc.GetElementById("session[password]");
password.InnerText = this.password;
// go to the submit button
webBrowser1.Document.GetElementsByTagName("input")[5].Focus();
SendKeys.Send("{ENTER}");
}
另一种方法是使用http请求(不太可能与phpBB一起可靠地工作)
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(twitterUrl + userID + ".xml");
string Credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(this.login + ":" + this.password));
request.Method = "POST";
request.ContentType = "application/xml";
request.AllowWriteStreamBuffering = true;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727;";
request.Headers.Add("Authorization", "Basic " + Credentials);
HttpWebResponse HttpWResp = (HttpWebResponse)request.GetResponse();
string response = HttpWResp.StatusCode.ToString();
HttpWResp.InitializeLifetimeService();
HttpWResp.Close();
return response;
上面的代码用于登录Twitter。您可以修改其中任何一种以适合您的口味。请记住,phpBB可能会使用验证码和会话验证来阻止您尝试执行的操作。
关于c# - 通过C#应用程序在phpBB开发板中发布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1752666/