我有一个关于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。 有人可以帮助我吗?
答案 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。