RestSharp ответ запрещен - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь получить простой запрос на https://c -cex.com / t / Prices.json

Если я использую этот URL в браузере, отображается правильный ответ, но еслия делаю тот же запрос, используя RestRequest, я получаю ошибку 403 Запрещено во все времена.я пытаюсь HttpClient, WebRequest я получаю ту же ошибку

Я поставил заголовок с user-agent, без кэша и много других значений, но не сработало

Есть идеи по этой проблеме?

Dim url As String = "https://c-cex.com/t/prices.json"
Dim client As New RestSharp.RestClient(url)
Dim request = New RestRequest(url, Method.GET)
Dim response = client.Execute(request)

Обновлен код с запросом на подпись

Dim nonce As String = CInt((DateTime.UtcNow - New DateTime(1970, 1, 1)).TotalSeconds).ToString

        Dim url As String = "https://c-cex.com/t/api.html?a=getbalance&currency=BTC&apikey=" & API_KEY & "&nonce=" & nonce


        Dim keybytes() = UnicodeEncoding.ASCII.GetBytes(API_SECRET)
        Dim hs As System.Security.Cryptography.HMACSHA512 = New System.Security.Cryptography.HMACSHA512(keybytes)
        Dim urlbytes() = UnicodeEncoding.ASCII.GetBytes(url)

        Dim sh() = hs.ComputeHash(urlbytes)    

        Dim client As New RestSharp.RestClient(url)            

        Dim request = New RestRequest(url, Method.GET)
        request.AddHeader("Cache-Control", "no-cache")
        request.AddHeader("apisign", HttpUtility.UrlEncode(ToHexString(sh)))    
        Dim response = client.Execute(request)

1 Ответ

0 голосов
/ 28 мая 2018

Я получаю ответ без предоставления информации заголовка, и похоже, что данный фрагмент кода работает корректно для меня на VB и C #. В качестве наилучшей практики необходимо указывать базовый URL-адрес в RestClient и относительный URL-адрес в RestRequest.

Пожалуйста, перепроверьте, не добавляя информацию заголовка запроса

VB:

  Imports RestSharp

Module Module1
    Sub Main()

        Dim host As String = "https://c-cex.com"
        Dim endpoit As String = "t/prices.json"
        Dim client As New RestSharp.RestClient(host)
        Dim request = New RestRequest(endpoit, Method.GET)
        Dim response = client.Execute(request)

        Console.WriteLine("Response Body " + response.Content)
        Console.WriteLine("Response Code " + response.StatusDescription)

    End Sub
End Module

C #:

    String host = "https://c-cex.com";
    String endpoint = "t/prices.json";

    RestClient _restClient = new RestClient(host);

    var request = new RestRequest(endpoint, Method.GET);
    var response = _restClient.Execute(request);

    Console.WriteLine("Response Body :"+response.Content);
    Console.WriteLine("Response Status Code :" + response.StatusDescription);

enter image description here enter image description here

...