Для проекта мне нужно создать «прокси» для стороннего API, потому что части API должны быть заблокированы для внешней стороны.Теперь я могу использовать HttpClient для получения информации из API, но мне нужно отправить информацию обратно, используя HttpResponse.Для многих я могу отправить информацию обратно, но иногда информация отправляется обратно в формате gzip или в двоичном виде.Я пытаюсь скопировать все заголовки из HttpResponseMessage в HttpResponse, но у меня ничего не получается.Кто-нибудь делал что-то подобное?
public static void AddHeaders(HttpResponse httpResponse, System.Net.Http.HttpResponseMessage httpResponseMessage)
{
httpResponse.CacheControl = httpResponseMessage.Headers.CacheControl.ToString();
foreach (KeyValuePair<string, System.Collections.Generic.IEnumerable<string>> item in httpResponseMessage.Headers)
{
AddHeaders(httpResponse, item);
}
foreach (KeyValuePair<string, System.Collections.Generic.IEnumerable<string>> item in httpResponseMessage.Content.Headers)
{
AddHeaders(httpResponse, item);
}
}
public static void AddHeaders(HttpResponse httpResponse, KeyValuePair<string, System.Collections.Generic.IEnumerable<string>> keyValuePair)
{
string key = keyValuePair.Key;
string values = "";
foreach (string stringValue in keyValuePair.Value)
{
values += "," + stringValue;
values = values.Trim(',');
}
switch (key)
{
case "Content-Type":
httpResponse.ContentType = values;
break;
default:
httpResponse.Headers.Add(key, values);
break;
}
}