Как опубликовать сложные данные Json (тело), ​​используя restsharp? - PullRequest
1 голос
/ 14 марта 2019

Надеюсь, у вас все хорошо !!

Мне нужно сделать пост-запрос, используя restsharp, тело, которое будет добавлено к запросу, приведено ниже.Это немного сложнее, чем запрос на публикацию, который я делал ранее.

Сложный пост, для которого я запрашиваю помощь: {"contextInfoId": "string", "userId": "string","specificOs": "string", "buildPlatform": "string", "deviceName": "string", "deviceId": "string", "token": "string", "loginInfo": {"loginInfoId": "string "," loginDate ":" 2019-03-14T06: 21: 39.693Z "}

}

Эта проблема для меня заключается в том, как 'loginInfo:' долженбыть предоставленным

Я добавил базовое тело сообщения к запросу, используя следующий код:

// Добавить json data / body request.AddJsonBody (new {buProfileId = "1", DivisionNames ="IDC", businessUnitNames = "XYZ", processGroupNames = "ABC", systemOrProjectName = "Test", customername = "User"});

Приведенный выше код C # отлично работает для тела, подобного приведенному ниже.

{"buProfileId": "string", "DivisionNames": "string", "businessUnitNames": "string", "processGroupNames": "string", "systemOrProjectName": "string", "customername ":" string "}

Может кто-нибудь, пожалуйста, дайте мне знать, как выполнить сложную почтовую операцию.

1 Ответ

1 голос
/ 14 марта 2019

Вы можете создать объект json и присвоить ему свое значение, затем вы можете сериализовать json и отправить его в тело

public class LoginInfo
{
    public string loginInfoId { get; set; }
    public DateTime loginDate { get; set; }
}

public class Context
{
    public string contextInfoId { get; set; }
    public string userId { get; set; }
    public string specificOs { get; set; }
    public string buildPlatform { get; set; }
    public string deviceName { get; set; }
    public string deviceId { get; set; }
    public string token { get; set; }
    public LoginInfo loginInfo { get; set; }
}

public IRestResponse Post_New_RequestType(string context, string user_ID, string Specific_Os, string Build_Platfrom, string Device_Name, string device_Id, string Token_Value, string login_infoId, DateTime Login_Date)
        {

            Context tmp = new Context();
            tmp.contextInfoId = context;
            tmp.userId = user_ID;
            tmp.specificOs = Specific_Os;
            tmp.buildPlatform = Build_Platfrom;
            tmp.deviceName = Device_Name;
            tmp.deviceId = device_Id;
            tmp.token = Token_Value;
            tmp.loginInfo.loginInfoId  = login_infoId;
            tmp.loginInfo.loginDate = Login_Date;


            string json = JsonConvert.SerializeObject(tmp);
            var Client = new RestClient(HostUrl);
            var request = new RestRequest(Method.POST);
            request.Resource = string.Format("/api/example");
            request.AddParameter("application/json", json, ParameterType.RequestBody);
            IRestResponse response = Client.Execute(request);
            return response;
}
...