Как звонить, метод POST в API, который включает в себя класс Content - PullRequest
0 голосов
/ 26 сентября 2018

, когда я запускаю код клиента, это дает мне ошибку 500. Так как я все еще новичок в теме веб-API, я действительно ценю помощь, чтобы определить, где была моя ошибка.

using (HttpClient client = new HttpClient())
{
    ObjHeader.listRtnTalleySheetHeader = lstRtnTalleySheetHeader;
    ObjHeader.listRtnTalleySheetDetail = lstRtnTalleySheetDetail;
    client.BaseAddress = new Uri("http://---service---");
    var url = "api/config/InsertTalleydetail/";
    var alldetails = Newtonsoft.Json.JsonConvert.SerializeObject(ObjHeader);
    HttpContent content = new StringContent(alldetails, Encoding.UTF8, "application/json");
    HttpResponseMessage response = await client.PostAsync(url, content);
    if (response.IsSuccessStatusCode)
        val = "Ok";
    else
        val = "No";
}
return val;

, которую ObjHeaderравно clsAllTalleyHeaderDetail ObjHeader = new clsAllTalleyHeaderDetail(); clsAllTalleyHeaderDetail равно

public class clsAllTalleyHeaderDetail
    {
        public ObservableCollection<clsTalleySheetHeader> listRtnTalleySheetHeader { get; set; }
        public ObservableCollection<clsTalleySheetDetail> listRtnTalleySheetDetail { get; set; }

    }

тогда мой WEB API

 [HttpPost]
        public HttpResponseMessage InsertTalleydetail([FromBody] clsAllTalleyHeaderDetail obj)
         {
                return   todoService.InsertTalleydetail(obj.listRtnTalleySheetHeader , obj.listRtnTalleySheetDetail );
        }

1 Ответ

0 голосов
/ 26 сентября 2018

1) Для вашего основного API вы должны установить Content-Type заголовок на application/json в HttpClient как

client.DefaultRequestHeaders.Add("Content-Type","application/json");

2) Для вашего примера API вы должны установить Content-Type заголовок наapplication/json в почтальоне с вашим raw форматом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...