Я пытаюсь найти способ перенаправить на внешний URL из нашего 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();
}
}
рабочий URL этого метода: 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, так как страница там не существует.