XMLHTTP对象提交远程表单信息
发布:apollo | 发布时间: 2009年2月27日 最近在给五十一中学开发项目,其中有点要求比较特殊(但是很合理),客户要求教师登陆账号跟温州中学现有的账号做个统一,这样的话,客户在五十一中这边网站登陆之后,也可以使用温州中学的教学资源,真的是一举两得,技术上其实也不难,就是看你怎么个操作法了。在温州中学的谢老师的帮助下,顺利的开通了API整合接口,返回一个带用户信息的XML文件格式,我们这边只需要负责解决接收XML文件的问题了,下面是具体的代码,在查阅代码的时候,大家有什么问题欢迎与我联系。
/*=================================================================
* 版权:温州市捷点信息技术有限公司 2005-2009 All Rights Reserved.
* 电话:0577-86668455 0577-86665455 0577-86663433
* 网址:http://www.cnvp.com.cn
* 作者:Apollo
* 邮件:Apollo_1314@HotMail.Com
===================================================================*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MSXML2;
namespace NetSchool.Common
{
/// <summary>
/// 远程提交表单
/// string rn = "";
/// string url = http://localhost/api/checklogin.asp;
/// XMLHTTP x = new XMLHTTP(); //创建设xmlhttp对像
/// XMLHTTP.ST_Param st = new XMLHTTP.ST_Param(); //创建参数数组//
/// st.Parameters = string.Format("UserName={0}&UserPass={1}", "admin", "admin");
/// st.Url = url;
/// st.Uid = "";//账号
/// st.Pwd = "";//密码
/// rn = x.SendCommand(XMLHTTP.SendMethod.GET, st); //获取返回信息
/// x.Dispose();
/// Response.Write(rn);
/// </summary>
public class XMLHTTP
{
#region XmlHttp发送
private XMLHTTPClass xml;
private bool _alreadyDispose = false;
public ST_Param Parameters;
public enum SendMethod : int
{
POST, GET
}
public struct ST_Param
{
public string Url;
public string Parameters;
public string Uid;
public string Pwd;
}
/// <summary>
/// 发送数据
/// </summary>
/// <param name="method">发送方式</param>
/// <param name="p">数据</param>
/// <returns>STRING</returns>
public virtual string SendCommand(SendMethod method, ST_Param p)
{
if (p.Url == null || p.Url == "") return null;
if (method == SendMethod.POST)
{
try
{
xml.open("POST", p.Url, false, p.Uid, p.Pwd);
xml.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xml.send(UrlEncoding(p.Parameters));
if (xml.status == 200)
{
return xml.responseText;
}
else
{
return xml.status.ToString();
}
}
catch (Exception E)
{
return E.Message.ToString();
}
}
else if (method == SendMethod.GET)
{
xml.open("GET", p.Url + "?" + UrlEncoding(p.Parameters), false, p.Uid, p.Pwd);
xml.send(null);
return System.Text.Encoding.Default.GetString((byte[])xml.responseBody);
}
return null;
}
#endregion
#region 构造与释构
public XMLHTTP()
{
xml = new XMLHTTPClass();
}
~XMLHTTP()
{
Dispose();
}
protected virtual void Dispose(bool isDisposing)
{
if (_alreadyDispose) return;
if (isDisposing)
{
if (xml != null)
{
xml = null;
}
}
_alreadyDispose = true;
}
#endregion
#region IDisposable 成员
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
#endregion
public string UrlEncoding(string str)
{
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(str);
return System.Text.Encoding.ASCII.GetString(bytes).ToString();
}
}
}
- 相关文章:
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。





