webAPI 支持网页测试 必须是谷歌浏览器
来源:互联网 发布:北京网络营销软件价格 编辑:程序博客网 时间:2024/06/05 00:12
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
using System.Net;
using System.Net.Http;
namespace Legal.Api.Service
{
public class MessageHandler : DelegatingHandler
{
const string Origin = "Origin";
const string AccessControlRequestMethod = "Access-Control-Request-Method";
const string AccessControlRequestHeaders = "Access-Control-Request-Headers";
const string AccessControlAllowOrigin = "Access-Control-Allow-Origin";
const string AccessControlAllowMethods = "Access-Control-Allow-Methods";
const string AccessControlAllowHeaders = "Access-Control-Allow-Headers";
//const string AccessControllRequestHeader = "X-HTTP-Method-Override";
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
bool isCorsRequest = request.Headers.Contains(Origin);
bool isPreflightRequest = request.Method == HttpMethod.Options;
if (isCorsRequest)
{
if (isPreflightRequest)
{
return Task.Factory.StartNew<HttpResponseMessage>(() =>
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Headers.Add(AccessControlAllowOrigin, request.Headers.GetValues(Origin).First());
string accessControlRequestMethod = request.Headers.GetValues(AccessControlRequestMethod).FirstOrDefault();
if (accessControlRequestMethod != null)
{
response.Headers.Add(AccessControlAllowMethods, accessControlRequestMethod);
}
string requestedHeaders = string.Join(", ", request.Headers.GetValues(AccessControlRequestHeaders));
if (!string.IsNullOrEmpty(requestedHeaders))
{
response.Headers.Add(AccessControlAllowHeaders, requestedHeaders);
}
return response;
}, cancellationToken);
}
else
{
return base.SendAsync(request, cancellationToken).ContinueWith<HttpResponseMessage>(t =>
{
HttpResponseMessage resp = t.Result;
resp.Headers.Add(AccessControlAllowOrigin, request.Headers.GetValues(Origin).First());
return resp;
});
}
}
else
{
return base.SendAsync(request, cancellationToken);
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
using System.Net;
using System.Net.Http;
namespace Legal.Api.Service
{
public class MessageHandler : DelegatingHandler
{
const string Origin = "Origin";
const string AccessControlRequestMethod = "Access-Control-Request-Method";
const string AccessControlRequestHeaders = "Access-Control-Request-Headers";
const string AccessControlAllowOrigin = "Access-Control-Allow-Origin";
const string AccessControlAllowMethods = "Access-Control-Allow-Methods";
const string AccessControlAllowHeaders = "Access-Control-Allow-Headers";
//const string AccessControllRequestHeader = "X-HTTP-Method-Override";
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
bool isCorsRequest = request.Headers.Contains(Origin);
bool isPreflightRequest = request.Method == HttpMethod.Options;
if (isCorsRequest)
{
if (isPreflightRequest)
{
return Task.Factory.StartNew<HttpResponseMessage>(() =>
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Headers.Add(AccessControlAllowOrigin, request.Headers.GetValues(Origin).First());
string accessControlRequestMethod = request.Headers.GetValues(AccessControlRequestMethod).FirstOrDefault();
if (accessControlRequestMethod != null)
{
response.Headers.Add(AccessControlAllowMethods, accessControlRequestMethod);
}
string requestedHeaders = string.Join(", ", request.Headers.GetValues(AccessControlRequestHeaders));
if (!string.IsNullOrEmpty(requestedHeaders))
{
response.Headers.Add(AccessControlAllowHeaders, requestedHeaders);
}
return response;
}, cancellationToken);
}
else
{
return base.SendAsync(request, cancellationToken).ContinueWith<HttpResponseMessage>(t =>
{
HttpResponseMessage resp = t.Result;
resp.Headers.Add(AccessControlAllowOrigin, request.Headers.GetValues(Origin).First());
return resp;
});
}
}
else
{
return base.SendAsync(request, cancellationToken);
}
}
}
}
0 0
- webAPI 支持网页测试 必须是谷歌浏览器
- webAPI 网页测试工具
- Mvc4 WebApi 支持jsonp
- webapi 支持namespace
- WebAPI压力测试
- Fiddler测试webAPI
- WebApi测试工具:PostMan
- HTML5 Canvas: 测试浏览器是否支持Canvas
- Robot framework中支持360浏览器测试
- 自动化测试之多类型浏览器支持
- WebRTC各个浏览器支持的功能测试
- robot自动化测试实现多浏览器支持
- 关于浏览器端的网页性能测试
- 关于浏览器端的网页性能测试
- 谷歌浏览器测试网页加载时间
- 测试网页兼容性时如何选择浏览器
- 启用 mvc webapi 支持 session
- WebApi JSONP的支持 c#
- Error Code: 2006 - MySQL 鏈嶅姟鍣ㄥ凡绂荤嚎
- Non--Abundant numbers
- php.ini中的request_order设置
- tolerant programming
- jmockit mock 方法内创建对象的方法调用
- webAPI 支持网页测试 必须是谷歌浏览器
- 对数据分布进行可视化的方法
- ASP之数据库连接
- webAPI 网页测试工具
- structs分页组件
- CCPlatformConfig(设置运行平台 iOS android win32等。。。)
- libstreaming源码分析二之MediaRecorder编码
- 2014苹果全球开发者大会:新系统成主角 无硬件发布
- 15周项目三