标签: frombodyattribute

同时阅读FromUri和FromBody

我在web api中有一个新方法

[HttpPost]
public ApiResponse PushMessage( [FromUri] string x, [FromUri] string y, [FromBody] Request Request)
Run Code Online (Sandbox Code Playgroud)

请求类就像

public class Request
{
    public string Message { get; set; }
    public bool TestingMode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用PostBody对localhost/Pusher/PushMessage进行查询?x = foo&y = bar:

{ Message: "foobar" , TestingMode:true }
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

c# asp.net http-post asp.net-web-api frombodyattribute

24
推荐指数
1
解决办法
5万
查看次数

REST API:使用正文获取请求

我想实现一个REST API,并且在我的GET请求上需要一个正文.(如下所述:带请求主体的HTTP GET)

是否有http客户端无法发送带有GET请求的正文?Fiddler能够做到这一点,虽然消息框是红色的.

.net rest http-get asp.net-web-api frombodyattribute

22
推荐指数
2
解决办法
4万
查看次数

我如何解析这个XML(没有得到"根元素丢失"或"序列不包含元素")?

这是这个问题的一个分支为什么在"穿越Rubicon"之后HttpWebRequest主体为val?这回答了(一个障碍是跳过),但是下一个障碍让我兴奋起来.

使用此代码:

public async void PostArgsAndXMLFileAsStr([FromBody] string stringifiedXML, string serialNum, string siteNum)
{
    XDocument doc = XDocument.Parse(await Request.Content.ReadAsStringAsync()); 
Run Code Online (Sandbox Code Playgroud)

...或这个:

XDocument doc = XDocument.Load(await Request.Content.ReadAsStreamAsync());
Run Code Online (Sandbox Code Playgroud)

...这是作为传入的stringifiedXML:

<?xml version=1.0?>
<LocateAndLaunch>
    <Tasks>Some Task</Tasks>
    <Locations>Some Location</Locations>
</LocateAndLaunch>
Run Code Online (Sandbox Code Playgroud)

...我得到异常:" System.Xml.XmlException未被用户代码处理HResult = -2146232000 Message = Root元素丢失. "

使用此代码(相同的stringifiedXML):

XDocument doc = XDocument.Parse(stringifiedXML);
Run Code Online (Sandbox Code Playgroud)

我明白了

System.InvalidOperationException未被用户代码处理HResult = -2146233079 Message = Sequence不包含任何元素Source = System.Core StackTrace:在System.Linq.Enumerable.First [TSource](IEnumerable`1 source)at HandheldServer.Controllers.DeliveryItemsController.d__2 .MoveNext()在c:\ HandheldServer\HandheldServer\Controllers\DeliveryItemsController.cs:第109行InnerException:

IOW,取决于我如何解析传入的字符串,我得到" 根元素丢失 "或" 序列不包含元素 "

Deuce McAlistair MacLean Virginia Weeper是什么?!?不是<LocateAndLaunch>根元素?不是Some TaskSome Location …

c# linq-to-xml frombodyattribute

9
推荐指数
2
解决办法
3万
查看次数

FromBody值为null

这是Asp.Net Webform应用程序
这是我的Apicontroller中的POST方法

public void Post([FromBody]string value)
{
}
Run Code Online (Sandbox Code Playgroud)

我正在使用提琴手后期处理.
我做了这样的实验.
但事实并非如此.

问题是什么.
你能帮我吗?

我试过了,我失败了.

public void Post(MyViewModel model)
{
   string aa = model.Value;
}

public class MyViewModel
{
   public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在提琴手:

Request Body:   
Value=hakan
Run Code Online (Sandbox Code Playgroud)

c# http-post asp.net-web-api frombodyattribute

8
推荐指数
2
解决办法
2万
查看次数

为什么我的Web API控制器操作不反序列化子属性的子属性?

我正在将PUT请求中的json有效负载发送到Web API控制器操作.有问题的行为有一个如下所示的签名:

public IHttpActionResult Post([FromBody]SaveThingRequest request)
Run Code Online (Sandbox Code Playgroud)

SaveThingRequest看起来像这样:

public class SaveThingRequest
{
    public List<ElementInfo> Elements { get; set; }

    public class ElementInfo
    {
        public List<ElementSettingInfo> Settings { get; set; }

        public class ElementSettingInfo
        {
            public string Name { get; set; }
            public string Value { get; set; }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在包含具有设置的元素的请求正文中发布了json.我通过在控制器操作中手动反序列化并确认JSON具有类似于以下内容的结构来证实这一点:

{
    Elements: [
        {
            Settings: [
                {
                    Name: 'Name 1',
                    Value: 'Value 1'
                },
                {
                    Name: 'Name 2',
                    Value: 'Value 2'
                }
            ]
        },
        {
            Settings: [
                {
                    Name: …
Run Code Online (Sandbox Code Playgroud)

json asp.net-web-api frombodyattribute

5
推荐指数
2
解决办法
1万
查看次数

FromBody收到的帖子导致可序列化错误

这是基本设置,我有一个asp.net核心webapi控制器(在c#中),具有以下发布功能:

[HttpPost]
public ActionResult<string> Post([FromBody] string Name)
{
     //Do some processing with the "Name" argument...
     return Ok( "Success!" );
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将以下原始JSON请求正文发送到此函数:

{
    "Name": "Foo"
}
Run Code Online (Sandbox Code Playgroud)

但是,当使用上面的正文向该函数发送发布请求时,我在服务器控制台中收到以下错误:

“执行ObjectResult,写入类型为'Microsoft.AspNetCore.Mvc.SerializableError'的值”

而这个错误在客户端

{“”:[“解析值时遇到意外字符:{。Path,第1行,位置1。” ]}

我尝试在函数的开头设置断点,但它甚至不会触发!为什么会出现可序列化的错误?

c# frombodyattribute asp.net-core asp.net-core-webapi

5
推荐指数
1
解决办法
1991
查看次数

反序列化列表对象,返回null的属性

我正在尝试将数据发布到应该接受的API List<UpdatePointHistory>.列表的大小是正确的,但对象的属性是空白的.

public class UpdatePointHistory
{
    string Tree { get; set; }
    string FruitCount { get; set; }
    string Observations { get; set; }
    int PrivateId { get; set; }
}

public void Post([FromBody]List<UpdatePointHistory> updates)
{
    //Do some sort of auth for god sake
    Console.WriteLine("test");
}
Run Code Online (Sandbox Code Playgroud)

我发布的数据:

在此输入图像描述

从API返回的对象:

在此输入图像描述

c# deserialization asp.net-web-api frombodyattribute

0
推荐指数
1
解决办法
73
查看次数