我要改进我的一个新项目,并且要添加的功能之一是可以在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/

10-11 07:59