C# asp.net核心web api无法从客户端发送对象
这是处理客户端请求的服务器代码C# asp.net核心web api无法从客户端发送对象,c#,asp.net-web-api,client,C#,Asp.net Web Api,Client,这是处理客户端请求的服务器代码 [HttpPost("Add")] public async Task<IActionResult> Add([FromBody]RequestAdd person) { if(person != null){ return Ok("good"); } return Ok("false"); }
[HttpPost("Add")]
public async Task<IActionResult> Add([FromBody]RequestAdd person)
{
if(person != null){
return Ok("good");
}
return Ok("false");
}
[HttpPost(“添加”)]
公共异步任务添加([FromBody]RequestAdd person)
{
if(person!=null){
返回Ok(“良好”);
}
返回Ok(“假”);
}
这是我添加到多部分json和图像字节中的客户端post代码
public Task<HttpResponseMessage> Uploads(Person person, List<FileInfo> files)
{
try
{
var jsonToSend = JsonConvert.SerializeObject(person, Formatting.None);
var multipart = new MultipartFormDataContent();
var body = new StringContent(jsonToSend, Encoding.UTF8, "application/json");
multipart.Add(body, "JsonDetails");
foreach (var item in files)
{
var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(item.FullName));
multipart.Add(fileContent, item.FullName);
}
var client = new HttpClient();
client.BaseAddress = new Uri(BASE_URL);
return client.PostAsync("Add", multipart);
}
catch
{
return null;
}
}
公共任务上载(个人,列表文件)
{
尝试
{
var jsonToSend=JsonConvert.SerializeObject(person,Formatting.None);
var multipart=新的MultipartFormDataContent();
var body=newstringcontent(jsonToSend,Encoding.UTF8,“application/json”);
多部分添加(正文,“JsonDetails”);
foreach(文件中的var项)
{
var fileContent=newbytearraycontent(System.IO.File.ReadAllBytes(item.FullName));
添加(fileContent,item.FullName);
}
var client=新的HttpClient();
client.BaseAddress=新Uri(基本URL);
返回client.PostAsync(“添加”,多部分);
}
抓住
{
返回null;
}
}
我使用此方法的代码有错误
static void Main(string[] args)
{
Method2();
Console.ReadLine();
}
static void Method2()
{
UploadMultiPart uploadMultiPart = new UploadMultiPart();
List<FileInfo> fileInfos = new List<FileInfo>()
{
new FileInfo(@"C:\asd\full-metal-jacket.png"),
new FileInfo(@"C:\asd\full-metal-jacket.png"),
new FileInfo(@"C:\asd\full-metal-jacket.png")
};
Person person = new Person
{
Name = "Adilbek",
SureName = "Ramazanov",
Position = "God",
Group = "heaven",
Phone = 123123
};
var result = loadMultiPart.Uploads(person,fileInfos).Result;
Console.WriteLine("Status is " + result.StatusCode);
}
static void Main(字符串[]args)
{
方法2();
Console.ReadLine();
}
静态void方法2()
{
UploadMultiPart UploadMultiPart=新的UploadMultiPart();
List fileInfos=新列表()
{
新的文件信息(@“C:\asd\full metal护套.png”),
新的文件信息(@“C:\asd\full metal护套.png”),
新文件信息(@“C:\asd\full metal jacket.png”)
};
人=新人
{
Name=“Adilbek”,
SureName=“Ramazanov”,
Position=“上帝”,
Group=“天堂”,
电话号码=123123
};
var result=loadMultiPart.Uploads(person,fileInfos.result);
Console.WriteLine(“状态为”+结果.StatusCode);
}
错误代码为状态为UnsupportedMediaType
我不知道如何发送到服务器,请帮助我抱歉我的英语不好使用[FromForm]属性,而不是[FromBody]属性
[HttpPost("Add")]
public async Task<IActionResult> Add([FromForm]RequestAdd person)
{
if(person != null){
return Ok("good");
}
return Ok("false");
}
[HttpPost(“添加”)]
公共异步任务添加([FromForm]RequestAdd person)
{
if(person!=null){
返回Ok(“良好”);
}
返回Ok(“假”);
}
您能告诉我FromForm的使用方法吗?@ost1m1ron-阅读文档:服务器不查看请求Person=null,但fileInfos有一个picture@ost1m1ron-在我的回答中,方法只有一个参数。对于2个参数,您应该创建新方法。