После многих попыток я наконец смог отключить процесс аутентификации OAuth / обновления токенов.Я уверен, что токены, которые я использую в этом процессе, хороши.Но я изо всех сил пытаюсь связаться с Compliance API, и я думаю, что это может быть больше связано с моим процессом аутентификации заголовков, чем конкретно с Compliance API, но я не уверен.Я пробовал так много разных комбинаций кода ниже безуспешно.Я попытался сделать вызов как GET и POST (вызов должен быть GET).Я пробовал это с токеном доступа, закодированным и не закодированным.При всех пробных комбинациях кода я получал либо ошибку авторизации, либо ошибку неверного запроса.Вы можете увидеть некоторые из различных вещей, которые я пробовал, из закомментированного кода.Спасибо за вашу помощь.
public static string Complaince_GetViolations(string clientId, string ruName, string clientSecret, string accessToken, ILog log)
{
var clientString = clientId + ":" + clientSecret;
//byte[] clientEncode = Encoding.UTF8.GetBytes(clientString);
//var credentials = "Basic " + System.Convert.ToBase64String(clientEncode);
byte[] clientEncode = Encoding.UTF8.GetBytes(accessToken);
var credentials = "Bearer " + System.Convert.ToBase64String(clientEncode);
var codeEncoded = System.Web.HttpUtility.UrlEncode(accessToken);
HttpWebRequest request = WebRequest.Create("https://api.ebay.com/sell/compliance/v1/listing_violation?compliance_type=PRODUCT_ADOPTION")
as HttpWebRequest;
request.Method = "GET";
// request.ContentType = "application/x-www-form-urlencoded";
//request.Headers.Add(HttpRequestHeader.Authorization, credentials);
//request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + codeEncoded);
request.Headers.Add(HttpRequestHeader.Authorization, credentials);
//request.Headers.Add("Authorization", "Bearer " + codeEncoded);
request.Headers.Add("X-EBAY-C-MARKETPLACE-ID", "EBAY-US");
log.Debug("starting request.GetRequestStream");
string result = "";
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream())) //FAILS HERE
{
result = streamReader.ReadToEnd();
}
//DO MORE STUFF BELOW
return "STUFF";
}