У меня возникли проблемы с вызовом API. Мне нужно отправить данные сообщения, содержащие 2 вещи: идентификатор и массив int. Я пробовал много вещей, все из-за ошибок или просто не отправляя данные в правильном направлении. Все ответы, которые я нашел, не обрабатывают тот факт, что я хочу отправить 2 разных типа данных.C#: параметры протокола POST HttpClient - одна строка и массив int
С другой стороны, у меня есть:
Call<DefaultResponseList> someMethod(@Field("parm1") String parm1, @Field("parm2[]") ArrayList<Integer> parm2);
Я пробовал:
List<int> ints1 = new List<int>();
ids.Add(1);
ids.Add(2);
ids.Add(3);
var values = new List<KeyValuePair<string, object>>
{
new KeyValuePair<string, object>("parm1", "lkdjfowejfd123"),
new KeyValuePair<string, object>("parm2", ints1)
};
var httpClient = new HttpClient(new HttpClientHandler());
HttpResponseMessage response = await httpClient.PostAsync(someUrl, new FormUrlEncodedContent(values));
response.EnsureSuccessStatusCode();
string data = await response.Content.ReadAsStringAsync();
Вы должны знать среду 'someUrl', а затем упорядочивать свои значения в соответствии с этой информацией. Ex, если целевая среда - это сервер Apache/PHP, ваши ключи должны быть похожими на param2 [], поскольку для классических значений envrionment ASP.NET должно быть такое же ключевое имя с возникновением, и если его ASP.NET MVC ваш ключ должен содержать индексы, такие как param2 [0 ], param2 [1] и т. д. –
Целевая среда - сервер Apache/PHP. – Miljkoyu