Я использую ServiceStack.JsonServiceClient, чтобы попытаться сделать запрос URL с пользовательским значением для заголовка Accept, но не могу найти способ сделать вызов.
Сервисный вызов должен получитьтемы для репозитория через GitHub API.В настоящее время это функция предварительного просмотра, которая требует отправки дополнительной информации в заголовке подтверждения в качестве пользовательского типа мультимедиа.(https://developer.github.com/v3/repos)
Я использую Service Stack и выполняю вызов C # .NET к конечной точке API, и я пытаюсь найти подходящий способ обновить заголовок accept в запросе.попробовал два strageies.
Создайте HttpWebRequest с заголовком и передайте его клиенту
Uri uri = new Uri(requestUrl, UriKind.Absolute);
HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create(uri);
webRequest.Accept = "application/vnd.github.mercy-preview+json";
HttpWebResponse webResponse = client.Get<HttpWebResponse>(webRequest);
requestUrl
- это строка вида https://api.github.com/repos/{owner}/{repo}?access_token={token}
Он успешно создает объекты Uri и HttpWebRequest, но затем выдает исключение для client.Get
, утверждая, что Invalid URI: The format of the URI could not be determined.
Вызов API со строковым URL: HttpWebResponse webResponse = client.Get<HttpWebResponse>(requestUrl);
успешно выполняется без проблем (но пользовательскийзначение заголовка не передается).
Установить заголовок на самом клиенте. client.AddHeaders
выдает исключение, поскольку Accept
является ограниченным заголовком. Мне не удалось найти другиеспособ установить заголовок непосредственно на клиенте (хотя это, вероятно, было бы самым хорошим решением).
Спасибо, и дайте мне знать, если есть что-нибудь еще, что я могу предоставить.