【问题标题】:POST single string Web APIPOST 单字符串 Web API
【发布时间】:2015-02-08 21:40:45
【问题描述】:

我正在尝试为 Windows 制作一个应用程序,它的作用类似于移动应用程序 (PhoneGap) 的服务器。这个应用程序就像服务器应用程序的远程,它调用轮到它们做事的方法。

经过长时间的搜索并尝试查看哪些组件可以协同工作,我找到了 OWIN 和 Web API。所以我试图在我的应用程序中实现它,但我似乎无法掌握如何发布字符串来调用方法。

我对过程的想法是,我将一个字符串发布到服务器,它读取该字符串并使用 switch 语句检查字符串的值,我知道要调用哪个方法。非常简单,直接(可能不是错误的证明),但这是一个开始。

但我似乎无法让它工作。这是我的控制器:

public void Post([FromBody]string value)
        {
           switch(value)
           {
               case("buttonOne"):
                   {
                       mainClass.pressButtonOne();
                       break;

                   }
           }
        }

我正在使用 HttpClient 在主机上模拟客户端:

HttpClient client = new HttpClient();

client.BaseAddress = new Uri("http://localhost:6740");
var content = "buttonOne";

var result = client.PostAsync("api/values", content).Result;
string resultContent = result.Content.ReadAsStringAsync().Result;
Console.WriteLine(resultContent);

但这会出错,字符串不是有效的 HttpContent。但它总是要求一对而不是单。

【问题讨论】:

  • 您没有正确传递内容。试试这个var content = new FormUrlEncodedContent(new Dictionary<string, string> { {"value" , "buttonOne"} })
  • 感谢伙伴,它的工作!
  • 请将此问题标记为已回答。谢谢。

标签: c# post httpclient asp.net-web-api


【解决方案1】:

发出 POST 请求时,帖子内容的类型应为 HttpContent 或其派生类型之一。

var content = new FormUrlEncodedContent(new Dictionary<string, string> {
{"value" , "buttonOne"} })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2019-12-07
    • 2016-11-21
    • 2017-07-23
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多