POST单字符串Web API

时间:2015-02-08 21:40:45

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

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

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

我对进程的想法是我将一个字符串POST到服务器,它读取它并使用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。但它总是要求一对而不是单身。

1 个答案:

答案 0 :(得分:1)

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

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