Как передать data.bind в POST-запрос, используя C# - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть веб-приложение, связанное с crm Dynamics 365. Я хочу создать запись в объекте с помощью API, но у объекта есть поля поиска для других объектов. Я попробовал этот код, но он выдает ошибку запроса. Как я могу отправить значения полей поиска в API?

JSON:{
"msdyn_name": "Asset",
"msdyn_account@odata.bind": "/accounts(7f7e031b-0e20-ea11-a810-000d3a2d54fd)",
"new_externalproj@odata.bind": "/msdynce_externalprojects(ee3f03c6-751f-ea11-a810-000d3a27b751)" }

var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(new
{
     msdyn_name = "Asset",
     msdyn_account = "7f7e031b-0e20-ea11-a810-000d3a2d54fd",
     new_externalproj = "ee3f03c6-751f-ea11-a810-000d3a27b751"
});
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://XXX.dynamics.com/api/data/v9.1/msdyn_customerassets");
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("Authorization", String.Format("Bearer {0}", result.AccessToken));
httpWebRequest.Headers.Add("OData-MaxVersion", "4.0");
httpWebRequest.Headers.Add("OData-Version", "4.0");
httpWebRequest.ContentType = "application/json";

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var responseText = streamReader.ReadToEnd();
}


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