Я пытаюсь вызвать Shopware REST API из c #.В Shopware есть документация для вызова API с помощью curl, и в основном я могу преобразовать это в c # и HttpClient, но для некоторых опций я просто не знаю, какие заголовки установить:
Магазин находится за базовым htaccess-auth и имеет авторизацию Shopware, используя apikey.Мой код до сих пор:
var handler = new System.Net.Http.HttpClientHandler { Credentials = new NetworkCredential(htaccessUsername, htaccessPassword) });
var client = new System.Net.Http.HttpClient(handler);
using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, apiUrl + "orders?limit=20"))
{
var encodedStr = Convert.ToBase64String(Encoding.Default.GetBytes($"{username}:{apiKey}"));
var authorizationKey = "Basic" + " " + encodedStr;
requestMessage.Headers.Add("Authorization", authorizationKey);
// curl_setopt($this->cURL, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($this->cURL, CURLOPT_FOLLOWLOCATION, false);
// curl_setopt($this->cURL, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
// curl_setopt(
// $this->cURL,
// CURLOPT_HTTPHEADER,
// ['Content-Type: application/json; charset=utf-8']
// );
using (var responseMessage = await client.SendAsync(requestMessage))
{
var data = await responseMessage.Content.ReadAsStringAsync();
System.Diagnostics.Trace.WriteLine(data);
}
}
Базовая аутентификация htaccess работает, но аутентификация Shopware не работает со следующим ответом в данных:
"{\"success\":false,\"message\":\"Invalid or missing auth\"}"
Я думаю, мне нужно как-то достичь curl_setopt($this->cURL, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
в c #, но я не нашел ни малейшего понятия, как преобразовать эти параметры curl в заголовок.Любая помощь?