2015-02-08 2 views
0

Я пытаюсь создать приложение для Windows, которое действует как сервер для мобильного приложения (PhoneGap). Это приложение похоже на удаленное приложение для сервера, оно вызывает методы, в которых их ход делает что-то.POST single string Web API

После долгих поисков и попыток увидеть, какие компоненты могут работать вместе, я нашел OWIN и Web API. Поэтому я пытаюсь реализовать это в своем приложении, но я не могу понять, как я могу 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. Но он всегда просит пары вместо сингла.

+0

Вы не передадите содержание правильно. Попробуйте 'уаг контента = новый FormUrlEncodedContent (новый словарь <строка, строка> \t \t \t \t \t { \t \t \t \t \t \t { "значение", "buttonOne"} \t \t \t \t \t})' – ziddarth

+0

Спасибо помощник, его работа! –

+0

, пожалуйста, отметьте этот вопрос как ответ. Благодарю. – ziddarth

ответ

1

При составлении запросов POST содержимое сообщения должно быть типа HttpContent или одного из его производных типов.

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