web项目后端跨域请求
2015-02-03来源:易贤网

using system;

using system.collections.generic;

using system.io;

using system.linq;

using system.net;

using system.text;

using system.web;

using system.web.sessionstate;

namespace gl

{

public class crossdomainhandler:ihttpmodule, irequiressessionstate

{

///

/// 释放内存

///

public void dispose()

{

}

///

/// 开始请求

///

///

public void init(httpapplication context)

{

//页面开始请求时,绑定时间

context.beginrequest += new eventhandler(context_prerequesthandlerexecute);

}

///

/// 请求处理

///

///

///

void context_prerequesthandlerexecute(object sender, eventargs e)

{

httpapplication app = (httpapplication)sender;

httpcontext context = app.context;

context.response.appendheader(charset, utf-8);

context.response.appendheader(defaultcharset, utf-8);

context.response.appendheader(content-type, text/html; charset=utf-8);

var relativeaddr = context.request.apprelativecurrentexecutionfilepath.remove(0, 2);

if (relativeaddr.startswith(server))

{

var url = string.concat(, relativeaddr.substring(relativeaddr.indexof('/')));

httpwebrequest request = webrequest.create(url) as httpwebrequest;

request.method = post;

request.contenttype = application/x-www-form-urlencoded;

var rs = request.getrequeststream();

var sb = new stringbuilder(a=a&);

context.request.form.allkeys.tolist().foreach(name =>

{

sb.appendformat({0}={1}&, name, context.request.form[name]);

});

var str = sb.tostring();

if(str.contains('&'))

{

str = str.substring(0, str.length - 1);

}

var sw = new streamwriter(rs, encoding.utf8);

sw.write(sb.tostring());

sw.close();

request.timeout = 60 * 1000;

var response = request.getresponse() as httpwebresponse;

var ps = response.getresponsestream();

var reader = new streamreader(ps, encoding.utf8);

string html = reader.readtoend();

ps.close();

context.response.write(html);

context.response.end();

}

}

}

}

更多信息请查看IT技术专栏

2026公务员·事业单位培训课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
推荐信息