C# Asp.NETCore1.1使用web api
我正在使用asp.net core 1.1和VisualStudio 2017社区开发一个web应用程序,在此应用程序中,我使用以下web api服务:C# Asp.NETCore1.1使用web api,c#,asp.net-web-api,asp.net-mvc-5,asp.net-core,asp.net-web-api2,C#,Asp.net Web Api,Asp.net Mvc 5,Asp.net Core,Asp.net Web Api2,我正在使用asp.net core 1.1和VisualStudio 2017社区开发一个web应用程序,在此应用程序中,我使用以下web api服务: public static T SendPostRequest<T>(string pController, T pParam){ using (HttpClient client = new HttpClient()){ string uri = API_URL + pController; client.
public static T SendPostRequest<T>(string pController, T pParam){
using (HttpClient client = new HttpClient()){
string uri = API_URL + pController;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var jsonInString = JsonConvert.SerializeObject((T)pParam);
var content = new StringContent(jsonInString, Encoding.UTF8, "application/json");
var result = client.PostAsync(uri, content).Result;
return JsonConvert.DeserializeObject<T>(result.Content.ReadAsStringAsync().Result);
}
publicstatict SendPostRequest(字符串pController,tparam){
使用(HttpClient=new HttpClient()){
字符串uri=API_URL+pController;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
var jsonInString=JsonConvert.SerializeObject((T)pParam);
var content=newstringcontent(jsonInString,Encoding.UTF8,“application/json”);
var result=client.PostAsync(uri,content.result);
返回JsonConvert.DeserializeObject(result.Content.ReadAsStringAsync().result);
}
}
当此代码到达api控制器时,我的对象为null,但jsonInString具有我的对象的值。
如果您看到我的对象的属性为null,那么当我使用PostMan、使用raw和JSON(applications/JSON)时也会出现相同的错误
但是,如果我使用postman处理表单数据,在我的apicontroller中,我接收对象的数据属性,我需要您的帮助,当我从asp.net核心web中的代码发送时,如何接收对象的值,我希望您的帮助
为了能够正确处理到达web Controller api net.core 1.1的数据,我建议您使用我在下面指出的方法 控制方法
[Route("GetAll")]
[HttpPost]
...here your security directives
**example**
[AllowAnonymous]
public JsonResult GetAll([FromBody]MupdateDto data)
{
try
{
List<MupdateDto > result = Service.GetAll(data);
return Json(response);
}
catch (Exception ex)
{
response.GenerateResponse(TransData.ResponseKo(ex.Message, -69), null, null);
throw;
}
}
[Route(“GetAll”)]
[HttpPost]
…这是你的安全指令
**范例**
[异名]
public JsonResult GetAll([FromBody]MupdateDto data)
{
尝试
{
列表结果=Service.GetAll(数据);
返回Json(响应);
}
捕获(例外情况除外)
{
response.generatereresponse(TransData.ResponseKo(例如-69),null,null);
投掷;
}
}
可以看出,在集合中,指示了调用路径[Route(“GetAll”)],以及要接收的参数类型[FromBody]。
示例结构
public class MupdateDto
{
/// <summary>
/// data
/// </summary>
public string data{ get; set; }
/// <summary>
/// Update
/// </summary>
public DateTime Update { get; set; }
/// <summary>
/// Lparam
/// </summary>
public long Lparam { get; set; }
}
公共类MupdateDto
{
///
///资料
///
公共字符串数据{get;set;}
///
///更新
///
公共日期时间更新{get;set;}
///
///Lparam
///
公共长Lparam{get;set;}
}
现在,在服务器启动的情况下,从邮递员处拨打电话时要考虑以下几点
-选择方法装饰中标记的类型
-现在是准备数据的时候了,而不是像上面指出的那样以类型形式传递数据,我建议您以原始形式传递数据,如下所示
你能确定我发送的数据类型是打字错误JSON吗
还有一件事,请记住,在RAW中填充的数据是模型在服务器上等待的类型,如果您有一个long类型的属性,并且在该RAW属性中填充的值是字符串,则其对象将达到null。
我希望你给我的解释是正确的,这将对你有所帮助。
问候语为了能够正确处理到达web控制器api net.core 1.1的数据,我建议您使用我在下面指出的内容 控制方法
[Route("GetAll")]
[HttpPost]
...here your security directives
**example**
[AllowAnonymous]
public JsonResult GetAll([FromBody]MupdateDto data)
{
try
{
List<MupdateDto > result = Service.GetAll(data);
return Json(response);
}
catch (Exception ex)
{
response.GenerateResponse(TransData.ResponseKo(ex.Message, -69), null, null);
throw;
}
}
[Route(“GetAll”)]
[HttpPost]
…这是你的安全指令
**范例**
[异名]
public JsonResult GetAll([FromBody]MupdateDto data)
{
尝试
{
列表结果=Service.GetAll(数据);
返回Json(响应);
}
捕获(例外情况除外)
{
response.generatereresponse(TransData.ResponseKo(例如-69),null,null);
投掷;
}
}
可以看出,在集合中,指示了调用路径[Route(“GetAll”)],以及要接收的参数类型[FromBody]。
示例结构
public class MupdateDto
{
/// <summary>
/// data
/// </summary>
public string data{ get; set; }
/// <summary>
/// Update
/// </summary>
public DateTime Update { get; set; }
/// <summary>
/// Lparam
/// </summary>
public long Lparam { get; set; }
}
公共类MupdateDto
{
///
///资料
///
公共字符串数据{get;set;}
///
///更新
///
公共日期时间更新{get;set;}
///
///Lparam
///
公共长Lparam{get;set;}
}
现在,在服务器启动的情况下,从邮递员处拨打电话时要考虑以下几点
-选择方法装饰中标记的类型
-现在是准备数据的时候了,而不是像上面指出的那样以类型形式传递数据,我建议您以原始形式传递数据,如下所示
你能确定我发送的数据类型是打字错误JSON吗
还有一件事,请记住,在RAW中填充的数据是模型在服务器上等待的类型,如果您有一个long类型的属性,并且在该RAW属性中填充的值是字符串,则其对象将达到null。
我希望你给我的解释是正确的,这将对你有所帮助。
问候语Change
FromForm
->FromBody
是的!只需从Form更改为FromBody更改FromForm
->FromBody
是的!从形体到形体的转换