Xdev.UserData
1.0.0
dotnet add package Xdev.UserData --version 1.0.0
NuGet\Install-Package Xdev.UserData -Version 1.0.0
<PackageReference Include="Xdev.UserData" Version="1.0.0" />
<PackageVersion Include="Xdev.UserData" Version="1.0.0" />
<PackageReference Include="Xdev.UserData" />
paket add Xdev.UserData --version 1.0.0
#r "nuget: Xdev.UserData, 1.0.0"
#:package Xdev.UserData@1.0.0
#addin nuget:?package=Xdev.UserData&version=1.0.0
#tool nuget:?package=Xdev.UserData&version=1.0.0
Xdev.UserData
Библиотека для получения информации о пользователе через PHP API
Содержание
- Описание
- ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ
- Возможности
- Поддерживаемые платформы
- Установка
- Быстрый старт
- Примеры использования
- API методы
- Структура данных
- Требования к серверу
- Установка API на ваш сервер
- Отказ от ответственности
Описание
Xdev.UserData — это мощная и простая в использовании библиотека на C# для получения подробной информации о пользователе через PHP API. Она позволяет получать данные об IP-адресе, географическом местоположении, интернет-провайдере, устройстве, браузере и многом другом.
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ
Для определения геолокации, провайдера и других данных используется стороннее API:
http://ip-api.com/json/
Это бесплатный сервис с ограничением 45 запросов в минуту.
Ваш IP-адрес передается на сторонний сервер для определения:
- Страны (country)
- Города (city)
- Региона (region)
- Часового пояса (timezone)
- Провайдера (ISP)
- Организации (org)
- Номера AS (as)
- Типа соединения (mobile/proxy/hosting)
Политика конфиденциальности: https://ip-api.com/docs/legal
Возможности
- ✅ Получение IP-адреса пользователя
- ✅ Геолокация: страна, город, регион, часовой пояс
- ✅ Информация о провайдере: ISP, организация, номер AS
- ✅ Данные об устройстве: тип (Desktop/Mobile), ОС, браузер, User-Agent
- ✅ Информация о запросе: метод, протокол, временная метка
- ✅ Языковые предпочтения пользователя
- ✅ Проверка: мобильное соединение, прокси, хостинг
- ✅ Синхронные и асинхронные методы
- ✅ Встроенное кэширование данных (30 секунд)
- ✅ Безопасное приведение типов
- ✅ Поддержка всех основных платформ .NET
Поддерживаемые платформы
| Платформа | Версии |
|---|---|
| .NET Framework | 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
| .NET Core | 3.1 |
| .NET | 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
| .NET Standard | 2.0, 2.1 |
Установка
| NuGet | Репозиторий |
|---|---|
dotnet add package Xdev.UserData |
Latest |
Быстрый старт
using Xdev.UserData;
// Создаем экземпляр клиента
using (var userInfo = new UserInfo())
{
// Получаем отдельные поля
string ip = userInfo.GetIpAddress();
string country = userInfo.GetCountry();
string city = userInfo.GetCity();
string browser = userInfo.GetBrowser();
Console.WriteLine($"IP: {ip}");
Console.WriteLine($"Страна: {country}");
Console.WriteLine($"Город: {city}");
Console.WriteLine($"Браузер: {browser}");
// Получаем полную информацию
Console.WriteLine(userInfo.GetAllInfo());
}
Примеры использования
Пример 1: Получение основной информации
using Xdev.UserData;
using (var userInfo = new UserInfo())
{
string basicInfo = userInfo.GetBasicInfo();
Console.WriteLine(basicInfo);
}
- Вывод
IP: your IP
Страна: Russia
Город: Kirov
Пример 2: Асинхронное получение данных
using Xdev.UserData;
using (var userInfo = new UserInfo())
{
// Асинхронное получение
string country = await userInfo.GetCountryAsync();
string city = await userInfo.GetCityAsync();
bool isMobile = await userInfo.IsMobileConnectionAsync();
Console.WriteLine($"Страна: {country}");
Console.WriteLine($"Город: {city}");
Console.WriteLine($"Мобильное: {isMobile}");
}
Пример 3: Работа с языками
using Xdev.UserData;
using (var userInfo = new UserInfo())
{
var languages = userInfo.GetLanguages();
Console.WriteLine("Языки пользователя:");
foreach (var lang in languages)
{
string code = lang["code"]?.ToString();
double quality = Convert.ToDouble(lang["quality"]);
Console.WriteLine($" {code} (приоритет: {quality})");
}
string primaryLang = userInfo.GetPrimaryLanguage();
Console.WriteLine($"Основной язык: {primaryLang}");
}
Пример 4: Использование своего API
using Xdev.UserData;
// Свой сервер с PHP скриптом
using (var userInfo = new UserInfo("https://ваш-сайт.ru/api/user-data.php"))
{
var data = userInfo.GetAllData();
}
О том как установить API на свой сервер будет рассказано в Установка API на ваш сервер
Пример 5: Сохранение в файл
using Xdev.UserData;
using (var userInfo = new UserInfo())
{
// Сохраняем JSON в файл
string json = userInfo.GetRawJson();
System.IO.File.WriteAllText("user_data.json", json);
// Асинхронное сохранение
await userInfo.SaveToFileAsync("user_data_pretty.json", true);
}
Пример 6: Полная информация
using Xdev.UserData;
using (var userInfo = new UserInfo())
{
Console.WriteLine(userInfo.GetAllInfo());
}
- Вывод
=== ИНФОРМАЦИЯ О ПОЛЬЗОВАТЕЛЕ ===
МЕСТОПОЛОЖЕНИЕ:
IP: your IP
Страна: Russia
Город: Kirov
Регион: Kaluga Oblast
Часовой пояс: Europe/Moscow
СОЕДИНЕНИЕ:
Провайдер: название вашего провайдера
Организация: организация вашего провайдера
AS: (хех)
Мобильное: Да
Прокси: Нет
Хостинг: Нет
УСТРОЙСТВО:
Тип: Desktop
ОС: Windows
Браузер: Edge
ЯЗЫКИ:
ru (quality: 1)
en (quality: 0.9)
Версия PHP на сервере: 5.6.40
Выводимые данные уникальны каждому
API Методы
Основные данные
| Метод/Асинхронный метод | Описание | Источник |
|---|---|---|
GetIpAddress() / GetIpAddressAsync() |
Получить IP-адрес | Локально |
GetCountry() / GetCountryAsync() |
Получить название страны | ip-api.com |
GetCity()/ GetCityAsync() |
Получить название города | ip-api.com |
GetRegion() / GetRegionAsync() |
Получить название региона | ip-api.com |
GetTimezone() / GetTimezoneAsync() |
Получить часовой пояс | ip-api.com |
Данные о соединении
| Метод/Асинхронный метод | Описание | Источник |
|---|---|---|
GetIsp() / GetIspAsync() |
Получить название провайдера | ip-api.com |
GetOrganization() / GetOrganizationAsync() |
Получить название организации | ip-api.com |
GetAsNumber() / GetAsNumberAsync() |
Получить номер AS | ip-api.com |
IsMobileConnection() / IsMobileConnectionAsync() |
Проверить мобильное соединение | ip-api.com |
IsHosting() / IsHostingAsync() |
Проверить хостинг | ip-api.com |
IsProxy() / IsProxyAsync() |
Проверить прокси | ip-api.com |
Данные об устройстве
| Метод/Асинхронный метод | Описание | Источник |
|---|---|---|
GetDeviceType() / GetDeviceTypeAsync() |
Получить тип устройства | Локально |
GetOperatingSystem() / GetOperatingSystemAsync() |
Получить ОС | Локально |
GetBrowser() / GetBrowserAsync() |
Получить браузер | Локально |
GetUserAgent() / GetUserAgentAsync() |
Получить User-Agent | Локально |
Данные запроса
| Метод/Асинхронный метод | Описание |
|---|---|
GetRequestMethod() |
Получить метод запроса |
GetRequestProtocol() |
Получить протокол |
GetTimestamp() |
Получить временную метку |
GetDateTime() |
Получить дату и время |
Языки
| Метод/Асинхронный метод | Описание |
|---|---|
GetLanguages() / GetLanguagesAsync() |
Получить список языков |
GetPrimaryLanguage() |
Получить основной язык |
Прочие методы
| Метод/Асинхронный метод | Описание |
|---|---|
GetReferer() |
Получить Referer |
GetRequestUri() |
Получить URI запроса |
GetPhpVersion() |
Получить версию PHP |
GetAllData() / GetAllDataAsync() |
Получить все данные |
GetRawJson() / GetRawJsonAsync() |
Получить сырой JSON |
IsApiAvailable() |
Проверить доступность API |
ClearCache() |
Очистить кэш |
RefreshData() / RefreshDataAsync() |
Обновить данные |
Комбинированные методы
| Метод/Асинхронный метод | Описание |
|---|---|
GetBasicInfo() |
Основная информация |
GetConnectionInfo() |
Информация о соединении |
GetDeviceInfo() |
Информация об устройстве |
GetAllInfo() |
Полная информация |
Структура данных
{
"success": true,
"data": {
"ip": "your ip",
"location": {
"country": "Russia",
"city": "Kirov",
"region": "Kaluga Oblast",
"timezone": "Europe/Moscow"
},
"connection": {
"isp": "your isp",
"organization": "your organization",
"as_number": "your as_number",
"is_mobile": true,
"is_proxy": false,
"is_hosting": false
},
"device": {
"type": "Desktop",
"os": "Windows",
"browser": "Edge",
"user_agent": "Mozilla/5.0..."
},
"request": {
"method": "GET",
"protocol": "HTTP/1.0",
"timestamp": "your timestamp",
"datetime": "2026-03-11 15:32:12"
},
"client": {
"languages": [
{"code": "ru", "quality": 1},
{"code": "en", "quality": 0.9}
],
"referer": "",
"request_uri": "/API/user_data.php"
},
"server": {
"php_version": "5.6.40"
}
}
}
Выводимые данные уникальны каждому
Требования к серверу
По умолчанию используется публичное API:
http://k90052gj.beget.tech/API/user_data.php
Можно указать свой эндпоинт:
var userInfo = new UserInfo("https://ваш-сайт.ru/api/user-data.php");
Установка API на ваш сервер
Главное требованеие!!! Сервер должен поддерживать PHP версии 5.6!!!
- Для начало мы создаём файл с расширением
.php - Потом мы вставляем этот код:
<?php
/**
* ===================================================
* ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ / IMPORTANT NOTICE
* ===================================================
*
* 🇷🇺 ДЛЯ ОПРЕДЕЛЕНИЯ ГЕОЛОКАЦИИ ИСПОЛЬЗУЕТСЯ СТОРОННЕЕ API:
* http://ip-api.com/json/
*
* Это бесплатный сервис с ограничением 45 запросов в минуту.
* Ваш IP-адрес передается на сторонний сервер для определения:
* - Страны (country)
* - Города (city)
* - Региона (region)
* - Часового пояса (timezone)
* - Провайдера (ISP)
* - Организации (org)
* - Номера AS (as)
* - Типа соединения (mobile/proxy/hosting)
*
* Политика конфиденциальности: https://ip-api.com/docs/legal
*
* 🇬🇧 FOR GEOLOCATION DETECTION USES THIRD-PARTY API:
* http://ip-api.com/json/
*
* This is a free service with a limit of 45 requests per minute.
* Your IP address is sent to a third-party server to determine:
* - Country
* - City
* - Region
* - Timezone
* - ISP
* - Organization
* - AS number
* - Connection type (mobile/proxy/hosting)
*
* Privacy policy: https://ip-api.com/docs/legal
* ===================================================
*/
/**
* MIT License
* Copyright (c) 2026 Хачапури dev
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**
* GitHub: https://github.com/xachapyri-dev/Xdev-UserData-csharp
*/
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');
header('X-Content-Type-Options: nosniff');
// Добавляем предупреждение в JSON ответ
$warning = [
'notice' => [
'ru' => 'Для определения геолокации используется стороннее API ip-api.com. Ваш IP передается на сторонний сервер.',
'en' => 'Third-party API ip-api.com is used for geolocation. Your IP is sent to a third-party server.',
'limit' => '45 requests per minute',
'privacy' => 'https://ip-api.com/docs/legal'
]
];
/**
* Получить IP-адрес пользователя
*/
function getUserIP() {
$server = $_SERVER;
$headers = array(
'HTTP_CLIENT_IP',
'HTTP_X_FORWARDED_FOR',
'HTTP_X_FORWARDED',
'HTTP_FORWARDED_FOR',
'HTTP_FORWARDED',
'REMOTE_ADDR'
);
foreach ($headers as $header) {
if (isset($server[$header])) {
$ip = $server[$header];
if (strpos($ip, ',') !== false) {
$ips = explode(',', $ip);
$ip = trim($ips[0]);
}
if (filter_var($ip, FILTER_VALIDATE_IP)) {
return $ip;
}
}
}
return 'UNKNOWN';
}
/**
* Получить геоданные по IP через ip-api.com
*/
function getLocationFromIP($ip) {
// Исключаем локальные IP
$localIPs = array('127.0.0.1', '::1', 'localhost');
if (in_array($ip, $localIPs) || $ip == 'UNKNOWN') {
return array(
'country' => 'Localhost',
'city' => 'Localhost',
'region' => 'Localhost',
'timezone' => 'UTC',
'isp' => 'Localhost',
'org' => 'Localhost',
'as' => 'Localhost',
'is_mobile' => false,
'is_proxy' => false,
'is_hosting' => false,
'source' => 'local'
);
}
// Используем API ip-api.com
$url = "http://ip-api.com/json/{$ip}?fields=status,country,city,regionName,timezone,isp,org,as,mobile,proxy,hosting";
$context = stream_context_create(array(
'http' => array(
'method' => 'GET',
'timeout' => 3,
'header' => "User-Agent: Xdev.UserData/1.0\r\n"
)
));
$response = @file_get_contents($url, false, $context);
if ($response !== false) {
$data = json_decode($response, true);
if ($data && isset($data['status']) && $data['status'] == 'success') {
return array(
'country' => isset($data['country']) ? $data['country'] : 'Unknown',
'city' => isset($data['city']) ? $data['city'] : 'Unknown',
'region' => isset($data['regionName']) ? $data['regionName'] : 'Unknown',
'timezone' => isset($data['timezone']) ? $data['timezone'] : 'Unknown',
'isp' => isset($data['isp']) ? $data['isp'] : 'Unknown',
'org' => isset($data['org']) ? $data['org'] : 'Unknown',
'as' => isset($data['as']) ? $data['as'] : 'Unknown',
'is_mobile' => isset($data['mobile']) ? (bool)$data['mobile'] : false,
'is_proxy' => isset($data['proxy']) ? (bool)$data['proxy'] : false,
'is_hosting' => isset($data['hosting']) ? (bool)$data['hosting'] : false,
'source' => 'ip-api.com'
);
}
}
// Если API не отвечает, возвращаем неизвестные данные
return array(
'country' => 'Unknown',
'city' => 'Unknown',
'region' => 'Unknown',
'timezone' => 'Unknown',
'isp' => 'Unknown',
'org' => 'Unknown',
'as' => 'Unknown',
'is_mobile' => false,
'is_proxy' => false,
'is_hosting' => false,
'source' => 'failed'
);
}
/**
* Получить информацию об устройстве
*/
function getDeviceInfo($userAgent) {
$browser = 'Unknown';
$os = 'Unknown';
$device = 'Desktop';
if (strpos($userAgent, 'Firefox') !== false) $browser = 'Firefox';
elseif (strpos($userAgent, 'Chrome') !== false) $browser = 'Chrome';
elseif (strpos($userAgent, 'Safari') !== false) $browser = 'Safari';
elseif (strpos($userAgent, 'Opera') !== false || strpos($userAgent, 'OPR') !== false) $browser = 'Opera';
elseif (strpos($userAgent, 'Edg') !== false) $browser = 'Edge';
elseif (strpos($userAgent, 'MSIE') !== false || strpos($userAgent, 'Trident') !== false) $browser = 'Internet Explorer';
if (strpos($userAgent, 'Windows NT') !== false) $os = 'Windows';
elseif (strpos($userAgent, 'Mac OS X') !== false) $os = 'macOS';
elseif (strpos($userAgent, 'Linux') !== false) $os = 'Linux';
elseif (strpos($userAgent, 'Android') !== false) $os = 'Android';
elseif (strpos($userAgent, 'iPhone') !== false || strpos($userAgent, 'iPad') !== false) $os = 'iOS';
if (strpos($userAgent, 'Mobile') !== false || strpos($userAgent, 'Android') !== false ||
strpos($userAgent, 'iPhone') !== false) $device = 'Mobile';
return array(
'browser' => $browser,
'os' => $os,
'device' => $device,
'user_agent' => $userAgent
);
}
/**
* Получить языковые предпочтения
*/
function getLanguages($acceptLang) {
$languages = array();
if (!empty($acceptLang)) {
$langs = explode(',', $acceptLang);
foreach ($langs as $lang) {
$parts = explode(';q=', $lang);
$code = trim($parts[0]);
$quality = isset($parts[1]) ? (float)$parts[1] : 1.0;
$languages[] = array(
'code' => $code,
'quality' => $quality
);
}
usort($languages, function($a, $b) {
if ($a['quality'] == $b['quality']) return 0;
return ($a['quality'] < $b['quality']) ? 1 : -1;
});
}
return $languages;
}
// Основной код
$userIP = getUserIP();
$userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
$acceptLang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '';
// Получаем геоданные через стороннее API
$location = getLocationFromIP($userIP);
// Получаем информацию об устройстве
$deviceInfo = getDeviceInfo($userAgent);
// Получаем языки
$languages = getLanguages($acceptLang);
// Собираем все данные
$userData = array(
'success' => true,
'notice' => $warning['notice'], // Добавляем предупреждение в ответ
'data' => array(
'ip' => $userIP,
'data_source' => $location['source'], // Указываем источник данных
'location' => array(
'country' => $location['country'],
'city' => $location['city'],
'region' => $location['region'],
'timezone' => $location['timezone'],
'latitude' => null, // API не возвращает координаты в этом запросе
'longitude' => null
),
'connection' => array(
'isp' => $location['isp'],
'organization' => $location['org'],
'as_number' => $location['as'],
'is_mobile' => $location['is_mobile'],
'is_proxy' => $location['is_proxy'],
'is_hosting' => $location['is_hosting']
),
'device' => array(
'type' => $deviceInfo['device'],
'os' => $deviceInfo['os'],
'browser' => $deviceInfo['browser'],
'user_agent' => $deviceInfo['user_agent']
),
'request' => array(
'method' => isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET',
'protocol' => isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1',
'timestamp' => time(),
'datetime' => date('Y-m-d H:i:s')
),
'client' => array(
'languages' => $languages,
'referer' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '',
'request_uri' => isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''
),
'server' => array(
'php_version' => PHP_VERSION
)
)
);
// Добавляем pretty print если запрошено
$options = JSON_UNESCAPED_UNICODE;
if (isset($_GET['pretty'])) {
$options |= JSON_PRETTY_PRINT;
}
echo json_encode($userData, $options);
?>
- Загружаем на любой хостинг (сервер должен поддерживать PHP версии 5.6)
- Всё! Используйте в вашем коде "Требования к серверу"
Отказ от ответственности
1. Использование стороннего API
Данная библиотека и соответствующий PHP-скрипт используют стороннее API ip-api.com для определения геолокации, информации о провайдере и других данных. Это означает, что:
- IP-адрес пользователя передается на сервер
ip-api.com - Сервер
ip-api.comможет собирать, хранить и обрабатывать эти данные в соответствии со своей политикой конфиденциальности - Мы не контролируем и не несем ответственности за действия
ip-api.com
2. Ограничения бесплатного тарифа
Бесплатная версия ip-api.com имеет ограничение 45 запросов в минуту. При превышении этого лимита:
- API может временно блокировать запросы
- Данные могут возвращаться с ошибкой или отсутствовать
- Рекомендуется использовать платную версию для высоконагруженных проектов
3. Точность данных
Мы не гарантируем 100% точность предоставляемых данных, так как они получены от стороннего API. Геолокация по IP всегда является приблизительной и может содержать ошибки.
4. Конфиденциальность пользователей
Разработчики, использующие эту библиотеку, обязаны:
- Уведомлять пользователей о сборе и передаче их IP-адресов
- Получать согласие пользователей, если это требуется по законодательству их страны
- Обеспечивать соблюдение требований GDPR, CCPA и других законов о конфиденциальности
5. Ответственность
Авторы библиотеки не несут ответственности за:
- Недоступность или некорректную работу стороннего API
- Нарушение законодательства о конфиденциальности разработчиками, использующими эту библиотеку
- Ущерб, прямой или косвенный, связанный с использованием данной библиотеки
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 is compatible. net462 is compatible. net463 was computed. net47 is compatible. net471 is compatible. net472 is compatible. net48 is compatible. net481 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.1
- System.Net.Http (>= 4.3.4)
- System.Text.Json (>= 8.0.5)
-
.NETFramework 4.6.1
- System.Net.Http (>= 4.3.4)
-
.NETFramework 4.6.2
- System.Net.Http (>= 4.3.4)
-
.NETFramework 4.7
- System.Net.Http (>= 4.3.4)
-
.NETFramework 4.7.1
- System.Net.Http (>= 4.3.4)
-
.NETFramework 4.7.2
- System.Net.Http (>= 4.3.4)
-
.NETFramework 4.8
- System.Net.Http (>= 4.3.4)
-
.NETFramework 4.8.1
- System.Net.Http (>= 4.3.4)
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 8.0.0)
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.Net.Http (>= 4.3.4)
- System.Text.Json (>= 8.0.5)
-
.NETStandard 2.1
- System.Net.Http (>= 4.3.4)
- System.Text.Json (>= 8.0.5)
-
net10.0
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
-
net5.0
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
-
net6.0
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
-
net7.0
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
-
net8.0
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
-
net9.0
- System.Net.Http (>= 4.3.4)
- System.Net.Http.Json (>= 8.0.1)
- System.Text.Json (>= 8.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 116 | 3/11/2026 |