Mil*_*oyu 0 c# post httpclient
我在调用 API 时遇到一些问题。我需要发送包含两件事的发布数据:一个 ID 和一个 int 数组。我尝试了很多方法,但都导致错误或根本没有以正确的方式发送数据。我找到的所有答案都没有处理我想发送两种不同数据类型的事实。
在另一边我有:
Call<DefaultResponseList> someMethod(@Field("parm1") String parm1, @Field("parm2[]") ArrayList<Integer> parm2);
Run Code Online (Sandbox Code Playgroud)
我试过:
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();
Run Code Online (Sandbox Code Playgroud)
我解决了这个问题。感谢 Cihan Uygun 的评论。
List<int> ids = new List<int>();
ids.Add(1);
ids.Add(2);
ids.Add(3);
var values = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("parm1", "lkdjfowejfd123")
};
int counter = 0;
foreach (int i in ids)
{
values.Add(new KeyValuePair<string, string>("parm2[" + counter.ToString() + "]", i.ToString()));
counter++;
}
var httpClient = new HttpClient(new HttpClientHandler());
HttpResponseMessage response = await httpClient.PostAsync(urlSaveRegions, new FormUrlEncodedContent(values));
response.EnsureSuccessStatusCode();
string data = await response.Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8934 次 |
| 最近记录: |