【问题标题】:C# HttpRequest posting a URLC# HttpRequest 发布 URL
【发布时间】:2011-07-31 22:46:41
【问题描述】:

我正在尝试获取一个 HttpRequest 来发布此 URL

https://www.iformbuilder.com/exzact/_emptyTable.php?PAGE_ID=1234&TABLE_NAME=table_name_here&USERNAME=yo@yo.com&PASSWORD=What!What!

我尝试过使用

WebClient rar = new WebClient();
rar.OpenReadAsync(new Uri(@"https://www.iformbuilder.com/exzact/_emptyTable.php?PAGE_ID=1234&TABLE_NAME=table_name_here&USERNAME=yo@yo.com&PASSWORD=What!What!"));

rar.DownloadStringAsync(new Uri(@"https://www.iformbuilder.com/exzact/_emptyTable.php?PAGE_ID=1234&TABLE_NAME=table_name_here&USERNAME=yo@yo.com&PASSWORD=What!What!"));

这是假设删除我在他们网站上的信息,但它没有采取。我正在关注这个文档。 http://getsatisfaction.com/exzact/topics/how_can_we_delete_old_records_not_manually

他们说我所要做的就是将正确的 URL 粘贴到 Web 浏览器中,然后按 Enter 键,它就可以工作了。我将如何在 c# 中做这个等价物?任何帮助都是极好的!谢谢!

【问题讨论】:

  • 我认为您需要转义所有这些正斜杠。
  • @Nick: 1) 为什么需要转义 forward 斜线。 2) 如果它们是 back 斜杠,它们将 已经 被字符串前面的 @ 转义。

标签: c# httprequest url-parameters


【解决方案1】:

使用 WebClient.DownloadString 而不是 DownloadStringAsync。 Async 表示不阻塞当前线程的异步方法。

【讨论】:

    【解决方案2】:

    在提交之前尝试在 WebClient 中设置 User-Agent 标头,看看是否可以解决问题。

    rar.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)")

    如果缺少 User-Agent 标头,许多 Web 服务器都设置为简单地忽略请求。

    随后,您在此处使用 HTTPS,因此您还需要设置您的 ServicePointManager.ServerCertificateValidationCallback

    【讨论】:

      【解决方案3】:

      尝试使用 System.Web 类,例如这样:

              HttpWebRequest req = null;
              HttpWebResponse resp = null;
      
              try
              {
                  req = (HttpWebRequest)HttpWebRequest.Create(url); // enter your url
      
                  req.Method = "post";
      
                  resp = (HttpWebResponse)req.GetResponse();
              }
              catch (Exception)
              {
                  throw;
              }
      

      这是 post 方法的示例,您可以使用任何其他 HTTP 方法,例如。检查documentation

      【讨论】:

        【解决方案4】:

        这不是您问题的直接答案,但请查看Hammock for REST

        【讨论】:

          【解决方案5】:
                  string uriString = @"https://www.iformbuilder.com/exzact/_emptyTable.php?PAGE_ID=1234&TABLE_NAME=table_name_here&USERNAME=yo@yo.com&PASSWORD=What!What!";
                  using (WebClient webClient = new WebClient { Encoding = Encoding.UTF8 })
                  {
                      try
                      {
                          string content = webClient.DownloadString(uriString);
                          //do stuff with the answer you got back from the site
                      }
                      catch (Exception exception)
                      {
                          //handle exceptions
                      }
                  }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-04-24
            • 1970-01-01
            • 1970-01-01
            • 2015-04-20
            相关资源
            最近更新 更多