一个发送xml远程请求和接收xml请求结果并置入DataSet的方法
2006-06-03 12:08
417 查看
/// <summary>
/// 返回查询结果
/// </summary>
/// <param name="RequestString">请求的字符串</param>
/// <param name="WriteText">是否打印出表格</param>
/// <returns></returns>
public static System.Data.DataSet GetDataSetByRequest(string RequestString,bool WriteText)
{
String requestStr="http://192.168.1.1/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;
}
/// 返回查询结果
/// </summary>
/// <param name="RequestString">请求的字符串</param>
/// <param name="WriteText">是否打印出表格</param>
/// <returns></returns>
public static System.Data.DataSet GetDataSetByRequest(string RequestString,bool WriteText)
{
String requestStr="http://192.168.1.1/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;
}
相关文章推荐
- 发送远程请求并获取请求的xml结果到DataSet
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- 使用JavaScript的XMLHttpRequest发送POST、GET请求以及接收返回值
- 创建XMLHttpRequest对象并向服务器发送请求的方法
- JAVA发送HttpClient请求及接收请求结果处理为JSONOBJCET过程
- 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。) .
- 利用ASP发送和接收XML数据的处理方法
- 一个Ajax请求如何向服务器发送XML
- Android通过post请求发送一个xml,解析返回xml数据
- 如何开发一接口 要求是外界会通过POST方法向HTTP发送一个xml文件
- 利用ASP发送和接收XML数据的处理方法
- Ajax入门 第3部分 使用XML向服务器发送请求和从服务器接收 XML
- asp.net 发送 xml post请求和接收 xml post请求时出现(500) 内部服务器错误的解决办法
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- 利用ASP从远程服务器上接收XML数据的方法
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法