HttpPost如何接收参数c#

时间:2013-12-17 17:13:28

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

我有一个关于Web服务的方法,我需要通过[httppost]接收参数 我是新人,我真的不知道如何 我需要收到以下信息:

long requestId,string text,byte [] audio,short languageId **

  

public void AddAnswer(long requestId,string text,byte [] audio,short 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,我需要将其转换为httppost。 有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

查看代码我认为您使用正文而不是网址发送信息(实际上您正在尝试发送通常与查询字符串不兼容的字节数组)。

因此,您必须使用参数名称附近的FromBody属性

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

而且我认为byte []不起作用。可能你必须使用multipart

答案 1 :(得分:0)

你可以参考this question,特别是this link

TLDR; FromBody 只接受一个参数;尝试将包含所有必需输入的 JSON 字符串以单个参数传递给您的 HttpPost。