代码之家  ›  专栏  ›  技术社区  ›  markiyanm

从C应用程序发布到网页

  •  1
  • markiyanm  · 技术社区  · 16 年前

    我一直在四处寻找/询问,似乎找不到这个。我有一个C应用程序,需要能够在应用程序中收集一些数据,打开一个Web浏览器并向其发布一些数据。

    我可以从应用程序fine中发布到该站点,很明显我可以将IE打开到某个链接,但我不能两者都做。我不能直接发布到那个链接。关于如何实现这一点有什么想法吗?

        private void btnSubmit_Click(object sender, EventArgs e)
        {
            ASCIIEncoding encoding = new ASCIIEncoding();
            string postData = "Fullname=Test";
            byte[] data = encoding.GetBytes(postData);
    
            // Prepare web request...
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.url.com/Default.aspx");
            myRequest.Method = "POST";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;
    
            Stream newStream = myRequest.GetRequestStream();
    
            // Send the data.
            newStream.Write(data, 0, data.Length);
            System.Diagnostics.Process.Start(myRequest.Address.ToString()); //open browser
            newStream.Close();
        }
    

    任何见解都将受到极大的赞赏。

    谢谢

    2 回复  |  直到 16 年前
        1
  •  3
  •   Darin Dimitrov    16 年前

    如果这是WinForms应用程序,可以使用 WebBrowser 控件在应用程序中宿主Internet Explorer实例,而不是生成新进程。这样做的好处是,您可以完全控制它,而且您可以发布到给定的URL:

    private void btnSubmit_Click(object sender, EventArgs e)
    {
        var postData = Encoding.Default.GetBytes("Fullname=Test");
        webBrowser1.Navigate(
            "http://www.url.com/Default.aspx", 
            null, 
            postData, 
            "Content-Type: application/x-www-form-urlencoded" + Environment.NewLine
        );
    }
    
        2
  •  0
  •   Nelson Rothermel    16 年前

    您可以设置 PostBackUrl property 在按钮(或LinkButton或ImageButton)中

    但是,这将执行标准的ASP.NET Post(使用ViewState等)。

    根据需要,您还可以创建一个没有runat=“server”的单独表单,然后设置表单的 action property 到你的页面。

    编辑: 不要紧,如果你有一个Windows应用程序(而不是Web应用程序),这就行不通了。至少,不是直接的。

    推荐文章