科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件一个发送xml远程请求和接收xml请求结果并置入DataSet的方法

一个发送xml远程请求和接收xml请求结果并置入DataSet的方法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

发送远程请求并获取请求的xml结果到DataSet .

作者:brightview 来源:CSDN 2008年3月28日

关键字: 方法 DataSet XML Web开发 软件

  • 评论
  • 分享微博
  • 分享邮件
/// <summary>
  /// 返回查询结果
  /// </summary>
  /// <param name="RequestString">请求的字符串</param>
  /// <param name="WriteText">是否打印出表格</param>
  /// <returns></returns>
  public static System.Data.DataSet GetDataSetByRequest(string RequestString,bool WriteText)
  {
   String requestStr="/post.aspx";

   String str="request="+RequestString; //request为请求的参数,RequestString是请求的字符串
   
   byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(str);  //可以设置编码
   WebRequest webrequest = WebRequest.Create(requestStr);   
   webrequest.Method = "POST";//请求的类型
   webrequest.Timeout = 300000;   //超时的毫秒数
   webrequest.ContentType="application/x-www-form-urlencoded";   
   System.Data.DataSet DS = new DataSet(); 
   webrequest.ContentLength=bytes.Length;
   Stream oStreamOut = null;
   try
   {
     oStreamOut = webrequest.GetRequestStream();   
   }
   catch
   {
    webrequest.Abort();
    DS.Dispose();
    System.Web.HttpContext.Current.Response.Write("请求超时,当前的字符串为:<br>" + System.Web.HttpContext.Current.Server.HtmlEncode(RequestString));
    System.Web.HttpContext.Current.Response.End();
   }
   finally
   {
    

   }
   
   oStreamOut.Write(bytes,0,bytes.Length);
   oStreamOut.Close();

   WebResponse myWebResponse = null;

   try
   {
    myWebResponse = webrequest.GetResponse();
   }
   catch
   {
    webrequest.Abort();
    DS.Dispose();
    System.Web.HttpContext.Current.Response.Write("获取返回的记录出错,当前的字符串为:<br>" + System.Web.HttpContext.Current.Server.HtmlEncode(RequestString));
    System.Web.HttpContext.Current.Response.End();
   }

   Stream streamResponse=myWebResponse.GetResponseStream();
   Encoding encode = Encoding.GetEncoding("GB2312");
   StreamReader streamRead = new StreamReader(streamResponse, encode);
   System.Xml.XmlTextReader Reader = new System.Xml.XmlTextReader(streamRead);
   DS.ReadXml(Reader);
   Reader.Close();
   streamResponse.Close();
   streamRead.Close();
   myWebResponse.Close();
   //Console.Read();     

打印返回的Datable
   if(WriteText)
   {
    System.Text.StringBuilder strT = new StringBuilder();
    for(int i=0;i<DS.Tables.Count;i++)
    {
     strT.Append("<br>Table" + i.ToString() + " " + DS.Tables[i].TableName + ":<hr><Table width=100% border=1>");
     for(int x=0;x<DS.Tables[i].Rows.Count;x++)
     {
      strT.Append("<tr>");
      for(int y=0;y<DS.Tables[i].Columns.Count;y++)
      {
       strT.Append("<td>");
       strT.Append(DS.Tables[i].Columns[y].ColumnName.ToString() + ":<br>");
       strT.Append(DS.Tables[i].Rows[x][y].ToString ());
       strT.Append("</td>");
      }
      strT.Append("</tr>");

     }
     strT.Append("</table>");
    }
    System.Web.HttpContext.Current.Response.Write(strT.ToString());
   }
   return DS;
 
  }

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章