2013-12-17 3 views
0

У меня есть метод в веб-сервисе, и мне нужно получить параметры с помощью [httppost].
Я новичок в этом, и я действительно не знаю, как.
мне нужно получить следующее:HttpPost Как получить параметры C#

долго RequestID, строка текста, байт [] аудио, короткий LanguageID **

общественного недействительными AddAnswer (длинный RequestID, строка текста, байт [] аудио, короткие LanguageID)

{ 
     string userIdWhoAnswers = (User as TokenPrincipal).userId.ToString(); 

     long userId = Convert.ToInt64(userIdWhoAnswers); 

     using (var context = new WordsEntities()) 
     { 
      Answers answer = new Answers(); 
      answer.requestId = requestId; 
      answer.userId = 10; 
      answer.text = text; 

      answer.audioExtension = audio; 
      DateTime datee = DateTime.Now; 
      answer.timePosted = datee; 
      answer.languageId = languageId; 

      context.Answers.Add(answer); 
      context.SaveChanges(); 
     } 
    } 

Это мой метод, но с HttpGet, мне нужно, чтобы преобразовать его в HTTP после. Может кто-нибудь, пожалуйста, помогите мне?

ответ

1

Глядя на свой код, я думаю, что вы отправляете информацию с помощью тела, а не URL-адреса (на самом деле вы пытаетесь отправить массив байтов, который обычно несовместим с строкой запроса).

По этой причине вы должны использовать атрибут FromBody рядом с именем параметра

public void AddAnswer ([FromBody] long requestId, [FromBody] string text, [FromBody] byte[] audio, [FromBody] short languageId) 

кроме того, я думаю, что байты [] не работают. Вероятно, вам нужно работать с multipart

+0

он работал, когда я отправлял параметры с помощью url .. Теперь мне просто нужно преобразовать это в httppost и взять параметры с помощью json .. – user3096746

Смежные вопросы