Мне нужно вызвать два оддата URL sap из кода C #.
Первый URL-адрес задает фильтры, а второй URL-адрес (общий URL-адрес) - фактический ответ.
Первый URL:
https://<>/sap/opu/odata/SALM/TM_SERVICE/setFilters?sap-language=EN&filter='2%2Ctime%3D%E2%80%8E4%E2%80%8E%2F%E2%80%8E1%E2%80%8E%2F%E2%80%8E2019%E2%80%8E%20%E2%80%8E10%E2%80%8E%3A%E2%80%8E31%E2%80%8E%3A%E2%80%8E24%E2%80%8E%20%E2%80%8EAMc%3ATest%20Suite%20for%20Focused%20Build%2Cw%3A%2CT%3D<>'
Второй URL:
https://<>//sap/opu/odata/SALM/TM_SERVICE/TILECollection(ConfigID='1%20',PageID='2%20',TileID='8%20')?$format=json&sap-language=EN
Второй URL-адрес является общим и постоянным URL-адресом, но после первого выполнения первого URL-адреса с другими значениями параметров второй URL-адрес даст другой ответ.
В браузере я могу выполнить эти два URL и увидеть разницу в ответах с разными значениями параметров.
Нужен код C # для имитации поведения браузера. В коде C # второй URL-адрес является постоянным и не изменяется.
Пробовал с использованием следующего: WebRequest, HttpWebRequest, HttpClient, WebClient вместе с передачей cookie (cookie, полученный от первого ответа, передается в Request при выполнении второго URL)
var httpClientHandler = new HttpClientHandler()
{
Credentials = credential,
CookieContainer = cookieContainer
};
using (HttpClient client = new HttpClient(httpClientHandler))
{
using (HttpResponseMessage response = client.GetAsync("<<first url>>").Result)
{
Uri uri = new Uri(string.Format(ConfigurationManager.AppSettings["TestPlanSetFilters"], s));
IEnumerable<Cookie> responseCookies = cookieContainer.GetCookies(uri).Cast<Cookie>();
foreach (Cookie cookie in responseCookies)
{
cookieContainer.Add(cookie);
}
}
using (HttpResponseMessage response1 = client.GetAsync("<<second url>>").Result)
{
using (HttpContent content1 = response1.Content)
{
var json2 = content1.ReadAsStringAsync().Result;
}
}
}