我有简单的URL重写:重定向到与POST方法网址Asp.Net核心
private static void RedirectToAPI(RewriteContext context)
{
var request = context.HttpContext.Request;
if (request.Path.Value.StartsWith("/apiendpoint", StringComparison.OrdinalIgnoreCase))
{
var json = JsonConvert.SerializeObject(request.Path.Value
.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries)
.Skip(1));
var response = context.HttpContext.Response;
response.Headers[HeaderNames.Location] = $"/custom";
response.StatusCode = StatusCodes.Status301MovedPermanently;
context.Result = RuleResult.EndResponse;
using (var bodyWriter = new StreamWriter(response.Body))
{
bodyWriter.Write(json);
bodyWriter.Flush();
}
}
}
的问题是,当它重定向到/自定义URL,请求GET方法,而这种方法需要POST。
例如,发送GET请求到url /apiendpoint/first/second/third,然后重写器响应重定向,因此,以下请求必须使用方法POST,但现在是GET。
如何更改url重写器响应后的请求方法?
您是否尝试过'request.Method =“POST”'? – Gururaj
@Gururaj是的,没有什么变化,仍然是GET请求。 –
request.Method = HttpMethod.Post ;? – Gururaj