【问题标题】:How to post data to a website如何将数据发布到网站
【发布时间】:2012-01-22 06:05:39
【问题描述】:

我需要将数据发布到网站。所以我在 C#.net 中创建了一个小应用程序,我打开这个网站并用我的数据库中的值填充所有控件(单选按钮、文本框、复选框等)。我在提交按钮上也有一个点击事件。然后应用程序等待 10-15 秒,然后将响应从网页复制到我的数据库。

如您所见,这确实是一个忙碌的过程。如果有数千条记录要上传,这个应用程序需要更长的时间(因为它等待 15 秒的响应)。

还有其他方法可以发布数据吗?我正在寻找类似将所有字段与其值连接起来并像数据流一样上传它的东西。如果网站是 https 而不是 http,这将如何工作?

【问题讨论】:

    标签: c# web http-post


    【解决方案1】:

    您可以使用HttpWebRequest 来执行此操作,并且可以将要发布的所有值连接到请求的单个字符串中。它可能看起来像这样:

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.yoursite.com");
    request.Method = "POST";
    
    formContent = "FormValue1=" + someValue +
        "&FormValue2=" + someValue2 +
        "&FormValue=" + someValue2;
    
    byte[] byteArray = Encoding.UTF8.GetBytes(formContent);
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = byteArray.Length;
    Stream dataStream = request.GetRequestStream();
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();
    WebResponse response = request.GetResponse();
    dataStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(dataStream);
    string responseFromServer = HttpUtility.UrlDecode(reader.ReadToEnd());
    //You may need HttpUtility.HtmlDecode depending on the response
    
    reader.Close();
    dataStream.Close();
    response.Close();
    

    此方法应该适用于 http 和 https。

    【讨论】:

    • 我差点忘了告诉你,我需要访问的链接需要使用用户名和密码登录。如何将其合并到此代码中?
    • 这是我现在使用浏览器所做的事情。第 1 页:输入登录信息。按提交第 2 页:有 2 帧。在顶部框架中,我输入电子邮件地址并单击加载记录。这将填充底部框架 2 中的所有信息。
    • 我需要帮助,我还想将我的数据(如名字)传输到给定网站的eservice.dohms.gov.ae/pservices/CreatePID0.aspx。有可能吗??
    【解决方案2】:

    MSDN 有一篇很棒的文章,其中包含详细说明如何使用 WebRequest 类发送数据的分步说明。链接如下:

    http://msdn.microsoft.com/en-us/library/debx8sh9.aspx

    【讨论】:

      【解决方案3】:

      是的,有一个 WebClient 类。查看documentation。有一些有用的方法可以发出 GET 和 POST 请求。

      【讨论】:

        猜你喜欢
        • 2012-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-03
        • 2012-12-04
        • 1970-01-01
        • 2022-10-01
        • 1970-01-01
        相关资源
        最近更新 更多