2015-02-08 54 views
0

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

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

我的过程思想是,我发送一个字符串到服务器,它读取并用switch语句检查字符串的值,我知道调用哪个方法。非常简单,直截了当(可能没有错误的证据),但这是一个开始。

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

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

        } 
      } 
     } 

我使用HttpClient的模拟PC主机客户端:

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。但它总是要求一对而不是单个。

+0

您没有正确传递内容。尝试这种'变种含量=新FormUrlEncodedContent(新词典<字符串,字符串> \t \t \t \t \t { \t \t \t \t \t \t { “值”,为 “buttonOne”} \t \t \t \t \t})' – ziddarth 2015-02-08 22:23:29

+0

由于队友,它的工作! – 2015-02-08 22:40:53

+0

请将此问题标记为已回答。谢谢。 – ziddarth 2015-02-09 06:16:16

回答

1

在发出POST请求时,发布内容应该是HttpContent或其派生类型之一。

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