首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在带有FromUri或FromBody的JSON中使用带参数的web API

在带有FromUri或FromBody的JSON中使用带参数的web API
EN

Stack Overflow用户
提问于 2019-01-15 12:30:14
回答 2查看 2.7K关注 0票数 1

我正在尝试用web api创建一个示例。我想要使用fromurifrombody的JSON格式的接收参数。当我创建客户端时,我想发送一个包含信息的对象或JSON。

在我的web API中,我有以下内容

代码语言:javascript
复制
[HttpPost]
public IHttpActionResult Post([FromUri]Peticion peticion)
{
     return Ok(peticion);
}

在我的客户里

代码语言:javascript
复制
Peticion obj = new Peticion();
obj.cliente = 2;
obj.factura = 22;
string DATA = Newtonsoft.Json.JsonConvert.SerializeObject(obj);

var client = new HttpClient();
HttpContent content = new StringContent(DATA, UTF8Encoding.UTF8, "application/json");

HttpResponseMessage message = 
client.PostAsync("http://localhost:57418//api/Deudor/",content).Result;

if (message.IsSuccessStatusCode)
{
   string result = message.Content.ReadAsStringAsync().Result;
}

但我需要在我的客户收到JSON。在web API中,我需要接收两个参数(cliente、factura),在我的客户端中,我需要接收JSON格式的客户端信息(姓名、发票等)。

我使用了邮递员,并收到了带有信息的JSON。但在我的客户端C#中,我做不到。

EN

回答 2

Stack Overflow用户

发布于 2019-01-15 12:46:53

无论使用.net核心还是框架,您都可以使用HttpClient向您的API发送Get和Post请求。

POST请求:

代码语言:javascript
复制
HttpClient client = new HttpClient();
var content = new StringContent(JsonConvert.SerializeObject(YourObject), Encoding.UTF8, "application/json");
client.PostAsync("your url", content);

然后你可以获取内容FromBody你可以使用Post请求和从url获取参数,但在这种情况下使用get更好。

Get请求:

代码语言:javascript
复制
HttpClient client = new HttpClient();
client.GetAsync("your url/api/controller/id/{id}");

在这两种情况下,您都需要为具有请求类型(GET、POST)的方法设置路由。例如:在上面的get示例中:

代码语言:javascript
复制
[Route("api/[controller]")
public class SomeController
{
  [HttpGet]
  [Route("id/{id}")]
  public someGetMethod(int id){
    //do something with id here...
  }
}
票数 1
EN

Stack Overflow用户

发布于 2019-01-15 12:48:17

在Web API中,如果控制器方法的参数不是“简单”类型,它会尝试从主体中获取值。所以我认为您应该删除Post()参数中的[FromUri],因为您实际上是在请求正文中发送该信息。

来源:https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54192708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档