天道酬勤,学无止境

frombodyattribute

同时读取 FromUri 和 FromBody(Reading FromUri and FromBody at the same time)

问题 我在 web api 中有一个新方法 [HttpPost] public ApiResponse PushMessage( [FromUri] string x, [FromUri] string y, [FromBody] Request Request) 请求类就像 public class Request { public string Message { get; set; } public bool TestingMode { get; set; } } 我正在使用 PostBody 对 localhost/Pusher/PushMessage?x=foo&y=bar 进行查询: { Message: "foobar" , TestingMode:true } 我错过了什么吗? 回答1 帖子正文通常是一个 URI 字符串,如下所示: Message=foobar&TestingMode=true 您必须确保 HTTP 标头包含 Content-Type: application/x-www-form-urlencoded 编辑:因为它仍然无法正常工作,所以我自己创建了一个完整的示例。 它打印正确的数据。 我还使用了 .NET 4.5 RC。 // server-side public class ValuesController : ApiController {

2021-11-18 17:55:15    分类:技术分享    c#   asp.net   asp.net-web-api   http-post   frombodyattribute

REST API:带有正文的 GET 请求(REST API: GET request with body)

问题 我想实现一个 REST API 并且需要一个关于我的 GET 请求的正文。 (就像这里讨论的:HTTP GET with request body) 是否有无法通过 GET 请求发送正文的 http 客户端? Fiddler 能够做到这一点,尽管消息框是红色的。 回答1 作为一般规则,REST 中 GET 的想法是您的任何参数都在 URL 中发送。 正如您所包含的问题的答案所表明的那样,它是可行的,但忽略了 REST 的要点,即具有一致的 webbish 界面。 如果您想将复杂的数据传递到您的端点,您可能需要使用 POST,您的用户希望有一个正文。 我强烈建议重新考虑该实施。 但是对于您的实际问题,请确保有些客户无法在 GET 上发送正文。 大多数情况下,我认为您的客户将是程序化的,例如,python 的 urlib2,虽然您可以在 GET 上设置主体,但这并不是该模块的真正用途,因此您迫使程序员变得奇怪。 更重要的是,REST api 的想法是与客户端无关,这就是为什么我觉得你的 API 设计应该在这里重新设计。 回答2 在 GET HTTP 请求中使用 body 是个坏主意。 是的,似乎“法律上的”HTTP GET 可以有正文,但“事实上”您会遇到问题: 使用客户端框架/库。 很难找到它的支持。 服务器可以忽略 GET 请求的主体。 无论如何,这不是标准方式

2021-11-18 16:27:59    分类:技术分享    .net   rest   asp.net-web-api   http-get   frombodyattribute

REST API: GET request with body

I want to implement a REST API and need a body on my GET requests. (Like discussed here: HTTP GET with request body) Are there http clients which are not able to send a body with a GET request? Fiddler is able to do it, although the message box is red.

2021-11-15 20:13:08    分类:问答    .net   rest   asp.net-web-api   http-get   frombodyattribute

Reading FromUri and FromBody at the same time

I have a new method in web api [HttpPost] public ApiResponse PushMessage( [FromUri] string x, [FromUri] string y, [FromBody] Request Request) where request class is like public class Request { public string Message { get; set; } public bool TestingMode { get; set; } } I'm making a query to localhost/Pusher/PushMessage?x=foo&y=bar with PostBody: { Message: "foobar" , TestingMode:true } Am i missing something?

2021-11-14 13:12:57    分类:问答    c#   asp.net   asp.net-web-api   http-post   frombodyattribute

如何在不将其放入 URL 的情况下将一堆 XML 传递给 Android 中的 RESTful 方法?(How can I pass a bunch of XML to a RESTful method from Android without putting it into the URL?)

问题 我知道如何在 C# 中做到这一点,事实上我在这里写了一篇关于它的提示,但我不知道如何在 Java/Android 中完成它。 到目前为止,我的代码是这样的: protected void doInBackground(String... params) { String URLToCall = "http://10.0.2.2:28642/api/DeliveryItems/PostArgsAndXMLFileAsStr"; String result = ""; String stringifiedXML = params[0]; HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(URLToCall); List<NameValuePair> nvp = new ArrayList<NameValuePair>(); nvp.add(new BasicNameValuePair("serialNum", "42")); nvp.add(new BasicNameValuePair("siteNum", "Some Site")); try { httppost.setEntity(new UrlEncodedFormEntity(nvp))

2021-10-14 13:44:36    分类:技术分享    java   xml   rest   url-routing   frombodyattribute

How can I pass a bunch of XML to a RESTful method from Android without putting it into the URL?

I know how to do this in C#, in fact I wrote a tip about it here, but I don't know how to accomplish it in Java/Android. My code is this so far: protected void doInBackground(String... params) { String URLToCall = "http://10.0.2.2:28642/api/DeliveryItems/PostArgsAndXMLFileAsStr"; String result = ""; String stringifiedXML = params[0]; HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(URLToCall); List<NameValuePair> nvp = new ArrayList<NameValuePair>(); nvp.add(new BasicNameValuePair("serialNum", "42")); nvp.add(new BasicNameValuePair("siteNum", "Some Site")); try

2021-10-11 18:05:35    分类:问答    java   xml   rest   url-routing   frombodyattribute

C# Web API POST parameter FromBody is always null

I've been scouring the web for hours and tried many different solutions also described here on StackOverflow. I know similar questions have been asked before, but none of the answers or comments have worked for me. The problem: I have a .NET Web API that has a Post-method with some parameters. One of the parameters is a complex object that is supposed to be read from the body (that is JSON). However, this object is always null. This is my code: // POST api/worksheets/post_event/true/false [Route("post_event/{newWorksheet}/{eindEvent}")] [HttpPost] public Event Post(bool newWorksheet, bool

2021-08-12 01:25:00    分类:问答    c#   json   http-post   asp.net-web-api2   frombodyattribute

如何通过 FromBody 将 DataTable 传递到 Web API POST 方法 (C#)(How to pass DataTable via FromBody to Web API POST method (C#))

问题 我正在从 Winforms 客户端成功调用 Web API 应用程序中的 POST 方法,该客户端为存储过程传递一些参数。 不过,如果可能的话,我更愿意通过 FromBody 功能将存储过程(我必须首先在客户端上运行)的结果传递给 POST 方法。 通过网络发送大量数据,但按照我现在的做法,我必须运行 SP 两次 - 首先在客户端 Winforms 应用程序上,然后在 Web API 服务器应用程序上,并同时调用此 SP似乎有时会引起一些问题。 因此,如果可行,我想通过“FromBody”发送数据表,或者如果更可取,发送数据的 XMLized 或 jsonized 版本(然后在另一端将其解压缩,在那里我将其转换为 html 以供检索)当调用相应的 GET 方法时。 有没有人有任何可以显示的代码? 我现有的仅传递参数的代码可以在这里看到。 更新 好的,根据 Amit Kumar Ghosh 的回答,我将代码更改为: WebApiConfig.cs public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services // Configure Web API to use only bearer

2021-06-23 09:56:21    分类:技术分享    c#   winforms   asp.net-web-api   frombodyattribute

FromBody 值变空(FromBody value get null)

问题 这是 Asp.Net Webform 应用程序这是我的 Apicontroller 中的 POST 方法 public void Post([FromBody]string value) { } 我正在使用小提琴手后期处理。 我做了这样的实验。 但它没有。 问题是什么。 你能帮我吗? 我试过了,失败了。 public void Post(MyViewModel model) { string aa = model.Value; } public class MyViewModel { public string Value { get; set; } } 在提琴手中: Request Body: Value=hakan 回答1 Fiddler 中的 POST 正文有效负载应为: =foo_bar 代替: value=foo_bar 这只是 Web API 中模型绑定的一些奇怪之处之一。 如果您想在 POST 正文有效负载中支持value=foo_bar ,您可以随时编写一个视图模型: public class MyViewModel { public string Value { get; set; } } 然后让您的方法将此视图模型作为参数: public void Post(MyViewModel model) { ... work with model.Value

2021-06-10 07:14:52    分类:技术分享    c#   asp.net-web-api   http-post   frombodyattribute

FromBody value get null

This is Asp.Net Webform application This is my POST method in my Apicontroller public void Post([FromBody]string value) { } I'm with fiddler post process. I did so experiment. But it did not. What is the problem. Can you help? I've tried it, I've failed. public void Post(MyViewModel model) { string aa = model.Value; } public class MyViewModel { public string Value { get; set; } } In Fiddler: Request Body: Value=hakan

2021-05-31 10:42:03    分类:问答    c#   asp.net-web-api   http-post   frombodyattribute