Кто-нибудь знает, как преобразовать приведенные ниже параметры формы данных Postman POST Body в запрос RestSharp C # POST, у меня пока ничего не получалось.Конечной точкой является использование OAuth 1.0, и я могу успешно публиковать сообщения только с данными формы тела, никакие другие параметры тела не помогают.
Почтальон RestSharp переведен на:
var client = new RestClient("https://openapi.etsy.com/v2/shipping/templates");
var request2 = new RestRequest(Method.POST);
request2.AddHeader("cache-control", "no-cache");
request2.AddHeader("authorization", "OAuth oauth_consumer_key=" + consumerKey + ",oauth_token=" + oAuthToken + ",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp="+ timeStamp + ",oauth_nonce=" + nonce +",oauth_version=\"1.0\",oauth_signature=" + sig + "");
request2.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
request2.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\ntest title\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"origin_country_id\"\r\n\r\n209\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"primary_cost\"\r\n\r\n1\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"secondary_cost\"\r\n\r\n1\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", ParameterType.RequestBody);
IRestResponse response2 = client.Execute(request2);
Но это не работает с RestSharp, он выбрасывает StatusCode Forbidden и Content 'oauth_problem = signature_invalid ...'
Как заставить это работать?Параметры могут быть переданы только с данными формы тела
Обновление: код, используемый для генерации одноразового номера, отметки времени, подписи и т. Д .:
OAuthBase oAuth = new OAuthBase();
string nonce = oAuth.GenerateNonce();
string timeStamp = oAuth.GenerateTimeStamp();
string normalizedUrl;
string normalizedRequestParameters;
string relativeUri = "url";
string sig = oAuth.GenerateSignature(new Uri(BASE_URL.ToString() + relativeUri), consumerKey, consumerSecret, oAuthToken, oAuthTokenSecret, RequestType.POST.ToString(), timeStamp, nonce, out normalizedUrl, out normalizedRequestParameters);