json Web API -PostAsync(http Rest)调用的问题

jecbmhm3  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(109)

早上好,
我有一个很大的问题与路由(我猜)为http后调用。我使用.Net 6。
我有以下调用,其中工作正常:

HttpResponseMessage response1 = await client.GetAsync("http://localhost:6000/api/" + "Utilisateur/AjouterUtilisateur1/" + "Machaine");

字符串
在UserController类上,我有以下代码:

[Route("api/[controller]")]
[ApiController]
public class UtilisateurController : Controller
 
[HttpPost("AjouterUtilisateur1/{jsonArgs}")]
public ActionResult<string> AjouterUtilisateur1(string jsonArgs)       
{ … }


那很好用。现在我想做一个帖子,而不是获取。所以在调用方上,我有代码:

HttpContent httpContent1 = new StringContent("MaChaine", Encoding.UTF8);
HttpResponseMessage response1 = await client.PostAsync("http://localhost:6000/api/" + "Utilisateur/AjouterUtilisateur1", httpContent1);


在服务器上,我有代码:

[Route("api/[controller]")]
ApiController]
public class UtilisateurController : Controller
 
[HttpPost("AjouterUtilisateur1")]
public ActionResult<string> AjouterUtilisateur1(string jsonArgs)       
{ … }


类构造函数执行得很好,但仅此而已。这会在response 1中产生以下错误(在调用者级别):
{状态代码:400,原因短语:“错误请求”,版本:1.1、内容:系统.Net.Http. Http连接响应内容,标头:{日期:格林尼治标准时间2023年7月14日星期五17:37:53服务器:Kestrel传输编码:分块的内容类型:应用程序/问题+JSON;字符集=utf-8 }}
谢谢你的帮助!
你能帮我找出我的错误吗?

but5z9lq

but5z9lq1#

一个错误的请求意味着你没有按照后端的要求发送有效负载,所以你需要做下面的修改。
你可以发送像下面这样的JSON字符串。

HttpContent httpContent1 = new StringContent("\"MaChaine\"", Encoding.UTF8, "application/json");
HttpResponseMessage response1 = await client.PostAsync("http://localhost:6000/api/" + "Utilisateur/AjouterUtilisateur1", httpContent1);

字符串
如果你有一个dto对象,你可以将它序列化为JSON字符串,并使用PostAsJsonAsync发送JSON。

string jsonEnvoi1 = JsonSerializer.Serialize<dtoUtilisateur>(dtoUtilisateur); HttpContent httpContent1 = new StringContent(jsonEnvoi1, Encoding.UTF8, "application/json");

相关问题