Я пытаюсь сделать несколько веб-запросов к API Spotify в моем проекте.У меня есть строковый массив с именем strResponseVal и foreach ответ URL, я хочу сохранить JSON, который возвращается в этот массив.
Я могу сделать один запрос.Я делаю это путем создания экземпляра клиента с конечной точкой "url" и создания веб-запроса к этому URL.
Как я могу сделать несколько?
Сначала у меня было:
RestClient rClient = new RestClient();
rClient.endPoint = "https://api.spotify.com/v1/me";
strResponse = string.Empty;
strResponse= rClient.getRequest(token);
//Console.WriteLine("\n\n------------------------------------Next API Call------------------------------------");
RestClient pClient = new RestClient();
pClient.endPoint = "https://api.spotify.com/v1/me/playlists";
strResponse = string.Empty;
strResponse = pClient.getRequest(token);
Ниже приведен класс RestClient:
public enum HttpVerb
{
GET,
POST,
PUT,
DELETE
}
class RestClient
{
public string endPoint { get; set; }
public HttpVerb httpMethod { get; set; }
List<Uri> uris;
public RestClient()
{
endPoint = string.Empty;
httpMethod = HttpVerb.GET;
}
public string[] getRequest(Token accessToken)
{
string[] strResponseVal = new string[uris.Count];
//HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endPoint);
try
{
uris = new List<Uri>();
uris.Add(new Uri("https://api.spotify.com/v1/me"));
uris.Add(new Uri("https://api.spotify.com/v1/me/playlists"));
Parallel.ForEach(uris, u =>
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(u);
request.ContentType = "application/json";
request.Headers.Add("Authorization", $"Bearer {accessToken.AccessToken}");
request.Method = httpMethod.ToString();
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode != HttpStatusCode.OK)
{
throw new ApplicationException("error code: " + response.StatusCode);
}
using (Stream responseStream = response.GetResponseStream())
{
if (responseStream != null)
{
using (StreamReader reader = new StreamReader(responseStream))
{
for (int i = 0; i < uris.Count; i++)
{
strResponseVal[i] = reader.ReadToEnd();
}
}
}
}
}
});
}
catch
{
}
/*request.ContentType = "application/json";
request.Headers.Add("Authorization", $"Bearer {accessToken.AccessToken}");
request.Method = httpMethod.ToString();
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode != HttpStatusCode.OK)
{
throw new ApplicationException("error code: " + response.StatusCode);
}
using (Stream responseStream = response.GetResponseStream())
{
if (responseStream != null)
{
using (StreamReader reader = new StreamReader(responseStream))
{
strResponseVal = reader.ReadToEnd();
}
}
}
}*/
return strResponseVal;
}