I wouldn't be too keen on sending a user-id and psw as string over HTTP unless it was HTTPS, and Json is string.
Maybe you should look into other means of user autentication using ASP.NET WebAPI, like JWT and others.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
I am using .net core web api but I can not receive json data.
public async Task<IActionResult>PostAsync(string username,string password)
{
}
the username=null and password is null .
someone tell me should add [FromBody] but I can only add one.
and I do not want to put the parameter in a class object.
I only want to use the seperate parameter.
I wouldn't be too keen on sending a user-id and psw as string over HTTP unless it was HTTPS, and Json is string.
Maybe you should look into other means of user autentication using ASP.NET WebAPI, like JWT and others.
someone tell me should add [FromBody] but I can only add one. and I do not want to put the parameter in a class object. I only want to use the separate parameter.
Your requirement is not possible by design in Web API Core. You'll need to write custom middleware to accomplish this task.
its simple:
public class PostRq
{
public string username {get; set;}
public string password {get; set;}
}
public async Task<IActionResult>PostAsync(PostRq rq)
{
Console.WriteLine(rq.username);
...
}
in javascript call:
var response = await fetch(url, {
method: "POST",
headers: {"Content-Type": "application/json"},
data: JSON.stringify({username, password})
}).then(r => r.json());
Hi @mc ,
[HttpPost]
public async Task<IActionResult> PostAsync( string username, string password)
{
return Ok("Success");
}
By using the above code, to transfer parameter to the method, you can use the Query String method: add the parameter at the end of the request url, like this: https://localhost:44310/api/todo?username=Jack&password=abc123
Then, the result as below:
If you want to transfer the data from request body and use json format, it is better to create a model, then use the following script to get send the parameter:
you can download the code from here
The result as below:
Besides, you can also try to get the parameter from the form, check the following sample code:
JavaScript code: use the FormData
object to transfer data:
Controller:
[HttpPost]
public async Task<IActionResult> PostAsync([FromForm]string username, [FromForm]string password)
{
return Ok("Success");
}
The result as below: when using Postman, select the form-data
:
If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.
Best Regards,
Dillion