Соответствующая информация о проекте:
- Метод драйвера - это проект XUnit в. Net Core 3.1,
- API - это проект API / MVC в. Net Core 3.1.
- Оба находятся в одном решении,
- Я запускаю два экземпляра VS 2019 для тестирования и отладки в данный конкретный момент.
- Дизайн тестов настроен на проведение полного теста функциональности из-за необходимости диагностики в не зависящих от меня обстоятельствах, и другие разработчики в команде согласны с этим подходом, учитывая эти обстоятельства.
Я просмотрел документацию по рекомендуемому использованию в https://github.com/restsharp/RestSharp/wiki/Recommended-Usage, где они добавляют несколько параметров, и мой код функционально идентичен. Проблема в том, что только первый добавленный параметр является тем, который проходит через конечную точку API ... То есть, только первый добавленный параметр проходит через провод для объекта Request.Form
:
//driver method:
url = "MyURLHere";
parameters.Add(new KeyValuePair<string, string>("folderName", FolderName)); //is added
parameters.Add(new KeyValuePair<string, string>("configurationName", ConfigurationName)); //is not added
response = CallBox(url, Method.POST, parameters.ToArray(), true);
//...some time later...
private IRestResponse CallBox(string url, Method method, KeyValuePair<string, string>[] parameters = null, bool isUpload = false) {
parameters = parameters ?? new KeyValuePair<string, string>[] { };
RestClient client = new RestClient(url);
RestRequest request = new RestRequest(method);
foreach (KeyValuePair<string, string> param in parameters) {
request.AddParameter(param.Key, param.Value, ParameterType.RequestBody);
}
request.AddHeader("content-type", "multipart/form-data; boundary=-----------------------------28947758029299");
IRestResponse response = client.Execute(request);
return response;
}
Важная информация о коде API:
public class BoxController : ControllerBase {
...
[HttpPost("MyURL")]
[ProducesResponseType(typeof(ActionResult), 201)]
[ProducesResponseType(typeof(ActionResult), 400)]
[ProducesResponseType(typeof(ActionResult), 500)]
public async Task<IActionResult> MyAPIEndPoint() {
...
//Checking Request.Form["ObjectKeysHere"]
Что здесь происходит и как я могу решить эту проблему? (Спасибо)