Aplicación de núcleo de red. Tengo una API GET como se muestra a continuación:
[HttpGet] [Route("configId={configId}"eId={quoteId}"), EnableQuery()] public async Task<IEnumerable<Scenario>> GetScenario(string configId, int quoteId) { var result = await configScenarioService.GetScenarioAsync(configId, quoteId); if (result.IsSuccess) { return result.scenarioResults; } return new List<Scenario>(); }Estoy tratando de golpear desde Postman de la siguiente manera:
https://localhost:44362/api/v1/Scenario/configId=JBEL+ASS_60_SG_5.2-145_MY21_T102.5_25y"eId=236Desafortunadamente, esto está dando un error 404. Tal vez el signo '+' esté causando el problema. Después de buscar en alguna documentación, probé de la siguiente manera:
1. https://localhost:44362/api/v1/Scenario/configId="+ encodeURIComponent(BEL+ASS_60_SG_5.2-145_MY21_T102.5_25y) +""eId=236Esto no funcionó para mí y todavía dio un error 404.
¿Cómo se puede arreglar esto?
Prueba esto
[HttpGet] [Route, EnableQuery()] public async Task<IEnumerable<Scenario>> GetScenario([FromQuery(Name = "configId")]string configId, [FromQuery(Name = "quoteId")]int quoteId) {ya que tiene el signo +, debe codificar su URL, para + URL codificada es% 2B https://www.w3schools.com/tags/ref_urlencode.asp
..../Scenario?configId=JBEL%2BASS_60_SG_5.2-145_MY21_T102.5_25y"eId=236y como tienes 404 tienes que arreglar una ruta de acción también
[Route("~/api/v1/Scenario")] public async Task<IEnumerable<Scenario>> GetScenario([FromQuery] string configId, [FromQuery] int quoteId)Entonces prueba esto:
[ApiController] [Route("api/v1/[controller]/[action]")] public class YourController : ControllerBase { //... ctor and your other stuff [HttpGet("{configId}/{quoteId}", Name = "Scenario")] [ProducesResponseType(typeof(IEnumerable<Scenario>)] public async Task<ActionResult<IEnumerable<Scenario>>> GetScenario(string configId, string quoteId) { } }