【问题标题】:Get posted data in string form from another source in ASP.NET从 ASP.NET 中的另一个源获取以字符串形式发布的数据
【发布时间】:2011-10-25 09:11:07
【问题描述】:

我有一个 URL,并且正在通过另一个供应商的 ERP 软件在该 URL 上发布数据.....我想从该供应商那里收集在页面加载事件中发布在我的 URL 上的数据......应该是什么用 c# 在 ASP.NET 中完成了吗? 他没有字段名称,而是自动生成数据字符串,然后自动将其发布到我的 ASP.NET 页面。

【问题讨论】:

    标签: c# asp.net http-post


    【解决方案1】:

    首先,如果您知道您将收到什么样的数据,那么您应该添加:

    Page.Response.ContentType = "text/xml"; //For XML Data
    

    然后在流阅读器中读取该数据:

    StreamReader sr = new StreamReader(Page.Request.InputStream);
    

    streamreader 中的数据是 Url Encoded。因此,您必须在进一步使用之前对其进行解码:

    string main = Server.UrlDecode(sr.ReadToEnd());
    

    就是这样。希望对你有帮助。

    【讨论】:

      【解决方案2】:
      var parameter = Request.QueryString["parameterName"];
      
      if (parameter != null)
      {
       //.. use it
      }
      

      HttpRequest.QueryString

      【讨论】:

      • 他们没有通过查询字符串发送数据
      【解决方案3】:

      我知道您说查询没有字段名称;这意味着您不能像普通的 QueryString 一样使用字符串索引器来查找它。如果是这样,那么您可能必须在不知道查询键的情况下访问它。

      假设您知道“数据”是第一个参数,您可以这样访问它:

      string data = Request.QueryString.getKey(0);
      

      如果不行,可以直接访问网址

      string query = Request.Url.Query;
      

      【讨论】:

        【解决方案4】:

        如果他们正在执行 POST,您可以使用Request.Form。它将返回发布到 URL 的元素的 NameValueCollection,如果您不知道要发布的内容的名称,您可以循环访问它。如果你知道名字,那么你可以Request.Form["NamedItem"]

        【讨论】:

          【解决方案5】:
          foreach(var key in Request)
          {
              var data = Request[key];
          }
          

          将遍历 Request.Querystrung、Request.Form 和 Request.Params。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-14
            • 2020-04-28
            • 1970-01-01
            相关资源
            最近更新 更多