Json запрос с массивом

331
08 июля 2017, 07:11

Здравствуйте!

Нужно отправить запрос типа

{
    "apiKey": "[ВАШ КЛЮЧ]",
    "modelName": "TrackingDocument",
    "calledMethod": "getStatusDocuments",
    "methodProperties": {
        "Documents": [
            {
                "DocumentNumber": "20400048799000",
                "Phone":""
            },
            {
                "DocumentNumber": "20400048799001",
                "Phone":""
            }
        ]
    }
}

Запрос отправляю методом

private async Task NewMethod1()
        {
            object dataObject1;
            string dataObject;
            NovaP bodyStr = new NovaP();
            bodyStr.ModelName = "TrackingDocument";
            bodyStr.CalledMethod = "getStatusDocuments";
            bodyStr.MethodProperties = new RefProp {
                Documents = new string[] { "str"}
            };
            bodyStr.ApiKey = "[ВАШ КЛЮЧ]";
            string body = JsonConvert.SerializeObject(bodyStr);
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);
            // Request headers
            var uri = "http://api.novaposhta.ua/v2.0/json/TrackingDocument/getStatusDocuments?" + queryString;
            HttpResponseMessage response;
            // Request body
            byte[] byteData = Encoding.UTF8.GetBytes(body);
            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                response = await client.PostAsync(uri, content);
                dataObject = response.Content.ReadAsStringAsync().Result;
                dataObject1 = JsonConvert.DeserializeObject(dataObject);
                richTextBox1.Text = dataObject1.ToString();
            }

Проблема возникает при создании Documents. Не получается создать в данном формате запрос.

Answer 1
public class Document
{
    public class Document(string doc, string phone)
    {
        DocumentNumber = doc;
        Phone = phone;
    }
    public string DocumentNumber {get;set;}
    public string Phone {get;set;}
}

в RefProp:

{
    ...
    public List<Document> Documents {get;set;}
    ...
}

вместо:

bodyStr.MethodProperties = new RefProp {
    Documents = new string[] { "str"}
};

будет:

bodyStr.MethodProperties = new RefProp {
    Documents = new List<Document>() { new Document("20400048799000",""), new Document("20400048799001","")}
};
READ ALSO
OWIN twitter ошибка 401 Asp.net mvc

OWIN twitter ошибка 401 Asp.net mvc

Сайт пишу на aspnet mvc 5, при аутентификации через соц

229
WCF. Add Service Reference не видит сервис

WCF. Add Service Reference не видит сервис

Вот контракт и класс, его наследующий

240
Странное рисование отрезка

Странное рисование отрезка

Почему вnet winforms не получается нарисовать отрезок из одного угла формы в другой? Следующий код:

156
Как можно выбрать и преобразовать файл в base64?

Как можно выбрать и преобразовать файл в base64?

Хочу по нажатию кнопки открывать проводник для выбора файла (FileOpenPicker) и после этого преобразовывать выбранный файл в base64Никак не получается...

175