Heim  >  Artikel  >  php教程  >  WEB项目后端跨域请求

WEB项目后端跨域请求

WBOY
WBOYOriginal
2016-06-13 09:16:16982Durchsuche

WEB项目后端跨域请求

   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("http://localhost:89", 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();

  }

  }

  }

  }

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn