asp.net api重定向外部网址

时间:2018-07-05 07:46:05

标签: asp.net redirect asp.net-web-api http-redirect

我正在尝试找到一种从我们的api重定向到外部网址的方法。
这是控制器中的当前代码:

[HttpGet, Route( "transcribe/{itemNum}/{salUnit}" )]
public IHttpActionResult RedirectToProductPage( string itemNum, string salUnit ) {
  Configuration.Services.GetTraceWriter().Debug( Request, _controllername, $"RedirectToProductPage({itemNum}, '{salUnit}');" );
  GroupClaes.MSSQL.Wiggum.Databases.Distribution dis = new GroupClaes.MSSQL.Wiggum.Databases.Distribution();
  // get productId
  try {
    int productId = dis.Products.Where( x => x.ItemNum == itemNum && x.Active ).Join( dis.PackingUnits, x => salUnit, x => x.Unit, ( inner, outer ) => new {
      inner.Id
    } ).FirstOrDefault().Id;
    Uri url = new Uri($"https://test-eshop.claes-distribution.be/products?page=0&query=&productId={productId}");
    return Redirect( url );
  } catch ( Exception ex ) {
    iTrace.Error( _controllername, ex );
    return InternalServerError();
  }
}

该方法的有效网址为https://api.groupclaes.be/distribution/webshop/data/products/transcribe/1141011100/Z1
我希望它会将我重定向到https://test-eshop.claes-distribution.be/products?page=0&query=&productId=6
它并没有将我重定向到https://api.groupclaes.be/products?page=0&query=&productId=6
所以我想这是因为它必须重定向到另一个网站,但我不知道为什么会这样。

在我的跟踪日志中,我有以下输出: [05-07-2018-09-38-25.748 - Info] System.Web.Http.Request: http://api.groupclaes.be/distribution/webshop/data/products/transcribe/1141011100/Z1; [05-07-2018-09-38-25.763 - Info] System.Web.Http.ModelBinding: HttpActionBinding;ExecuteBindingAsync;Model state is valid. Values: itemNum=1141011100, salUnit=Z1; [05-07-2018-09-38-25.763 - Debug] RAW_API.Controllers.Distribution.ProductsController: RedirectToProductPage(1141011100, 'Z1');; [05-07-2018-09-38-25.795 - Info] System.Web.Http.Request: http://api.groupclaes.be/products?page=0&query=&productId=6; [05-07-2018-09-38-25.795 - Info] System.Net.Http.Formatting: JsonMediaTypeFormatter;GetPerRequestFormatterInstance;Obtaining formatter of type 'JsonMediaTypeFormatter' for type='HttpError', mediaType='application/json; charset=utf-8';
并非超级有用,但是您也可以看到重定向的请求进入api并给出404错误,因为该页面不存在。

0 个答案:

没有答案