Asp.net mvc 4 MVC Web API上带有数组参数的PostAsync请求
我有一个Xamarin应用程序,它具有带有参数数组列表的POST请求,在我的MVCWebAPI上,我们使用了代码优先实体框架。两者都是独立的项目解决方案(.sln) 在我的Xamarin项目中,我有一个PostAsync请求,它提供数组值列表Asp.net mvc 4 MVC Web API上带有数组参数的PostAsync请求,asp.net-mvc-4,asp.net-web-api,xamarin.forms,dotnet-httpclient,asp.net-web-api-routing,Asp.net Mvc 4,Asp.net Web Api,Xamarin.forms,Dotnet Httpclient,Asp.net Web Api Routing,我有一个Xamarin应用程序,它具有带有参数数组列表的POST请求,在我的MVCWebAPI上,我们使用了代码优先实体框架。两者都是独立的项目解决方案(.sln) 在我的Xamarin项目中,我有一个PostAsync请求,它提供数组值列表 using (var client = new HttpClient()) { Parameter = string.Format("type={0}¶m={1}",type, param[]);
using (var client = new HttpClient())
{
Parameter = string.Format("type={0}¶m={1}",type, param[]);
var data = JsonConvert.SerializeObject(parameters);
var content = new StringContent(data, Encoding.UTF8, "application/json");
using (var response = await client.PostAsync(url, content))
{
using (var responseContent = response.Content)
{
result = await responseContent.ReadAsStringAsync();
}
}
}
然后在我的WebAPI控制器中,我的客户端也有相同的参数
[System.Web.Http.AcceptVerbs("GET", "POST")]
[System.Web.Http.HttpPost]
[Route("type={type}¶m={param}")]
public BasicResponse applog([FromUri] ProfilingType type , List<string> param)
{
if (ModelState.IsValid == false)
{
throw new ModelValidationException("Model state is invalid.");
}
try
{
if(type == ProfilingType.Login)
{
var command = new SendDataProfilingCommand(param);
CommandHandler.Execute(command);
}
else
{
var command = new UpdateDataProfilingCommand(type,param);
CommandHandler.Execute(command);
}
}
catch (Exception e)
{
throw new Exception(e.Message);
}
return new BasicResponse
{
Status = true,
Message = Ok().ToString()
};
}
[System.Web.Http.AcceptVerbs(“GET”、“POST”)]
[System.Web.Http.HttpPost]
[路由(“type={type}¶m={param}”)]
public BasicResponse applog([FromUri]ProfilingType类型,列表参数)
{
if(ModelState.IsValid==false)
{
抛出新的ModelValidationException(“模型状态无效”);
}
尝试
{
if(type==ProfilingType.Login)
{
var命令=新的SendDataProfilingCommand(参数);
CommandHandler.Execute(命令);
}
其他的
{
var命令=新的UpdateDataProfilingCommand(类型,参数);
CommandHandler.Execute(命令);
}
}
捕获(例外e)
{
抛出新异常(e.Message);
}
返回新的基本应答
{
状态=真,
Message=Ok().ToString()消息
};
}
因为我不熟悉API,所以我想先在Postman甚至URL上测试它。但我的问题是当我尝试使用下面的url测试它时
菲律宾马尼拉,0,0]
我收到这条消息:没有找到与请求URI匹配的HTTP资源
我的问题是,如何在URL或邮递员中使用列表参数测试我的Web API?在向Xamarin PostAsync请求发送post请求时,我可以使用什么格式?您不需要作为内容发送
using (var client = new HttpClient())
{
Parameter = string.Format("type={0}¶m={1}",type, param[]);
url = url + "?" + Parameter;
using (var response = await client.PostAsync(url))
{
using (var responseContent = response.Content)
{
result = await responseContent.ReadAsStringAsync();
}
}
}
可能的副本请参阅复制链接。您为数组生成的URL不正确。