我有簡單的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