Невозможно установить MIME-тип с помощью RestSharp и GoCardless
Использование C#, .Net 4,5, RestSharp v4.0.3
Попытка создать api_key в GoCardless
Я создаю RestClient, как это:
var client = new RestClient();
client.BaseUrl = SandboxBaseUrl;
client.Authenticator = new HttpBasicAuthenticator(apiKeyId, apiKey);
client.AddDefaultHeader("GoCardless-Version", Properties.Settings.Default.GoCardlessVersion);
client.AddDefaultHeader("Accept", "application/json");
client.AddDefaultHeader("content-type", "application/json");
request.AddHeader("content-type", "application/json");
Когда я отправляю сообщение в GoCardless, я получаю сообщение об ошибке
{"error":{"message":"'Content-Type' header must be application/json or application/vnd.api+json ......
1 ответ
После многих бесполезных поисков я сдался и использовал решения в старых публикациях Stackru. Такие как
// Create the Json for the new object
StringBuilder requestJson = new StringBuilder();
var requestObject = new { api_keys = new { name = name, links = new { role = role } } };
(new JavaScriptSerializer()).Serialize(requestObject, requestJson);
...
// Set up the RestSharp request
request.Parameters.Clear();
request.AddParameter("application/json", requestJson, ParameterType.RequestBody);
Я понимаю, почему это работает - и даже, возможно, намерение RestSharp сделать это таким образом.