Created
April 25, 2025 07:59
-
-
Save anomal3/0c6c6b9aecbf37077ce2977ac67b3e1b to your computer and use it in GitHub Desktop.
Не документированное API Rapira.net курс USDT\RUB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ApiRapira | |
{ | |
static string apiurl = "https://api.rapira.net/market/symbol-thumb"; | |
public static async Task<double> GetCurrentRateFiat() | |
{ | |
var currentRub = await CustomHttpPostResponseAsync(); | |
if (currentRub == 0) | |
{ | |
return await ApiBybit.GetCurrentRateFiat(); | |
} | |
return currentRub; | |
} | |
private static async Task<double> CustomHttpPostResponseAsync() | |
{ | |
using (var client = new HttpClient()) | |
{ | |
// Добавляем заголовки | |
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); | |
client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip")); | |
client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate")); | |
client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("br")); | |
client.DefaultRequestHeaders.AcceptEncoding.Add(new StringWithQualityHeaderValue("zstd")); | |
client.DefaultRequestHeaders.AcceptLanguage.Add(new StringWithQualityHeaderValue("en")); | |
client.DefaultRequestHeaders.Add("dnt", "1"); | |
client.DefaultRequestHeaders.Add("origin", "https://rapira.net"); | |
var response = await client.PostAsync(apiurl, null); | |
if (response.IsSuccessStatusCode) | |
{ | |
var responseStream = await response.Content.ReadAsStreamAsync(); | |
string responseContent; | |
// Проверяем, сжат ли ответ | |
if (response.Content.Headers.ContentEncoding.Contains("gzip")) | |
{ | |
using (var decompressedStream = new GZipStream(responseStream, CompressionMode.Decompress)) | |
using (var reader = new StreamReader(decompressedStream)) | |
{ | |
responseContent = await reader.ReadToEndAsync(); | |
} | |
} | |
else if (response.Content.Headers.ContentEncoding.Contains("deflate")) | |
{ | |
using (var decompressedStream = new DeflateStream(responseStream, CompressionMode.Decompress)) | |
using (var reader = new StreamReader(decompressedStream)) | |
{ | |
responseContent = await reader.ReadToEndAsync(); | |
} | |
} | |
else | |
{ | |
using (var reader = new StreamReader(responseStream)) | |
{ | |
responseContent = await reader.ReadToEndAsync(); | |
} | |
} | |
// Парсим как массив | |
JArray dataArray = JArray.Parse(responseContent); | |
var usdtRubItem = dataArray.FirstOrDefault(x => x["symbol"]?.ToString() == "USDT/RUB"); | |
if (usdtRubItem != null) | |
{ | |
string price = usdtRubItem["close"]?.ToString(); | |
if (double.TryParse(price, out double _price)) | |
{ | |
return _price; | |
} | |
else | |
{ | |
return 0; | |
} | |
} | |
} | |
} | |
return 0; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment