对方使用一个系统每天把数据导出到一个XML文件中,然后把xml文件以流的方式直接POST到我们系统的某个http接口中,我们把得到的文件解析,入库,现在我太理解上面的那句话,请大家帮我解释一下,最好有一个例子?谢谢!!!
解决方案 »
- System.Web.Configuration.PagesSection.AutoEventWireup 能在运行时用代码设置成false吗?
- .NET弹框传值问题
- 请问 vs2003(asp.net 1.1 ) 中 如何判断 datagrid 的某一列 是什么类型 ?
- 期待高手 关于 SQLXML的一个小问题 再开一贴散分 谢谢大家的帮忙
- Asp.net Login 控件登录怎么放服务器上不能登录了?
- 请教:如何使页面在过一定时间后,点击前进或者后退都会显示页面已经过期?
- 本地修改程序后,编译运行无误,上传到另外服务器时,出错??
- 关于datagrid里的当前行
- 分号和双引号在C#中怎么表示?(急)
- 真奇怪!
- 如何把System.Drawing.Image对象img,在页面的Image控件上显示出来```谢谢了``
- 一个很简单的页面问题
ds.ReadXml(Request.InputStream);
........
{
HttpWebRequest request=null;
HttpWebResponse response=null;
Stream stream=null;
StreamReader reader=null;
DataSet ds=null;
string b_temp = null;
byte [] byteOut = null;
try
{
request=(HttpWebRequest)WebRequest.Create(url);
response=(HttpWebResponse)request.GetResponse();
stream=response.GetResponseStream();
reader=new StreamReader(stream,System.Text.Encoding.Default);
ds=new DataSet();
ds.ReadXmlSchema(schema);
ds.ReadXml(reader);
stream.Close();
}
catch (Exception e)
{
throw new Exception("向"+url+"发送请求时出错:"+e.ToString());
}
return ds;
}传入参数为对方的http请求
{
Encoding encode = System.Text.Encoding.Default;
byte[] arrB = encode.GetBytes(strParm);
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(strUrl);
myReq.Method = "POST" ;
myReq.ContentType = "application/x-www-form-urlencoded";
myReq.ContentLength = arrB.Length;
Stream outStream = myReq.GetRequestStream();
outStream.Write(arrB,0,arrB.Length);
outStream.Close();
WebResponse myResp = null;
try
{
//接收HTTP做出的响应
myResp = myReq.GetResponse();
}
catch(Exception e)
{
int ii =0;
}
Stream ReceiveStream = myResp.GetResponseStream();
StreamReader readStream = new StreamReader( ReceiveStream, encode );
Char[] read = new Char[256];
int count = readStream.Read( read, 0, 256 );
string str = null;
while (count > 0)
{
str += new String(read, 0, count);
count = readStream.Read(read, 0, 256);
}
readStream.Close();
myResp.Close();
return str;
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
this.GetHtmlString("http://127.0.0.1/test/Get.aspx","<data>aa</data>");
}#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregionprivate string GetHtmlString(string sUrl,string postData)
{
string sHtml = "";
HttpWebRequest request;
HttpWebResponse response=null;
Stream stream = null;
try
{
request = (HttpWebRequest)WebRequest.Create(sUrl);
request.Method = "POST";
request.ContentType="application/x-www-form-urlencoded";
Encoding encoding = Encoding.GetEncoding("GB2312");
byte[] data = encoding.GetBytes(postData);
request.ContentLength = data.Length;
Stream _stream=request.GetRequestStream();
_stream.Write(data,0,data.Length);
response=(HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
sHtml=new StreamReader(stream,System.Text.Encoding.Default).ReadToEnd();
}
catch (Exception e)
{
string aa = e.Message;
if (response!=null) response.Close();
}
if(stream != null) stream.Close();
if(response != null) response.Close();
return sHtml;
}
Get.aspx的部分代码:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
XmlDocument doc =new XmlDocument();
string xmlstr="";
try
{
Stream _stream = Request.InputStream;
_stream.Position=0;
xmlstr = new StreamReader(_stream,System.Text.Encoding.Default).ReadToEnd();
Response.Write(xmlstr);
}
catch(Exception err)
{
Response.Write(err.Message);
}
}xmlstr就是发送过来的XML串.或者可以直接用
XmlDocument doc =new XmlDocument();
doc.Load(Request.InputStream());//获得XmlDocument 对象注意在Get.aspx中设置validateRequest=false
对方的系统是Delphi实现的!他们就提供一个XML流给我。