我正在编写一个创建和解析短网址的webapi项目。我使用以下实现来执行此操作:
从这个应用程序,我可以创建短网址,并重定向到我原来的网址。但在这里我遇到了一些困难。
重定向代码使用301移动重定向到原始网址。代码如下所示;
[HttpGet]
[Route("{key}")]
public HttpResponseMessage Get(string key)
{
using (UrlManager urlManager = new UrlManager()) {
var response = Request.CreateResponse(HttpStatusCode.TemporaryRedirect);
String urlString = urlManager.GetUrl(key);
if (!String.IsNullOrWhiteSpace(urlString))
{
response.Headers.Location = new Uri(urlString);
//response.Headers.Add("Authorization", "Basic basicauthcode");
return response;
}
}
return null;
}
我还需要做以下事情;
我需要包含授权标头以及一些要在原始网址中使用的自定义标头(重定向后当前标头丢失)
我还需要支持包含模型
我可以将方法更改为HttpPOST并使用307而不是301来请求Post方法。因此应该有Get和Post方法来单独处理这些请求。但在这里我也不能使用标题。
另一种解决方案我认为我需要在我的短网址获取方法中创建一个新的网页请求,其中包含所有需要的信息。但我不知道它是如何工作的,因为我们没有在这里重定向。
请有人指导我。