我正在尝试找到一种从我们的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错误,因为该页面不存在。