feat: sync httpdns sdk/platform updates without large binaries
This commit is contained in:
73
HttpDNSSDK/sdk/flutter/new_httpdns/README.md
Normal file
73
HttpDNSSDK/sdk/flutter/new_httpdns/README.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# HTTPDNS Flutter SDK (SNI Hidden v1.0.0)
|
||||
|
||||
## 1. Initialization
|
||||
|
||||
```dart
|
||||
import 'package:new_httpdns/new_httpdns.dart';
|
||||
|
||||
await NewHttpdns.init(
|
||||
appId: 'app1f1ndpo9',
|
||||
primaryServiceHost: 'httpdns-a.example.com',
|
||||
backupServiceHost: 'httpdns-b.example.com', // optional
|
||||
servicePort: 443,
|
||||
secretKey: 'your-sign-secret', // optional if sign is enabled
|
||||
);
|
||||
|
||||
await NewHttpdns.setHttpsRequestEnabled(true);
|
||||
await NewHttpdns.build();
|
||||
```
|
||||
|
||||
## 2. Resolve
|
||||
|
||||
```dart
|
||||
final result = await NewHttpdns.resolveHostSyncNonBlocking(
|
||||
'api.business.com',
|
||||
ipType: 'both',
|
||||
);
|
||||
|
||||
final ipv4 = result['ipv4'] ?? <String>[];
|
||||
final ipv6 = result['ipv6'] ?? <String>[];
|
||||
```
|
||||
|
||||
## 3. Official HTTP Adapter (IP + Host)
|
||||
|
||||
```dart
|
||||
final adapter = NewHttpdns.createHttpAdapter(
|
||||
options: const NewHttpdnsAdapterOptions(
|
||||
ipType: 'auto',
|
||||
connectTimeoutMs: 3000,
|
||||
readTimeoutMs: 5000,
|
||||
allowInsecureCertificatesForDebugOnly: false,
|
||||
),
|
||||
);
|
||||
|
||||
final resp = await adapter.request(
|
||||
Uri.parse('https://api.business.com/v1/ping'),
|
||||
method: 'GET',
|
||||
headers: {'Accept': 'application/json'},
|
||||
);
|
||||
|
||||
print(resp.statusCode);
|
||||
print(resp.usedIp);
|
||||
```
|
||||
|
||||
Behavior is fixed:
|
||||
- Resolve host by `/resolve`.
|
||||
- Connect to resolved IP over HTTPS.
|
||||
- Keep `Host` header as the real business domain.
|
||||
- No fallback to domain direct request.
|
||||
|
||||
## 4. Public Errors
|
||||
|
||||
- `NO_IP_AVAILABLE`
|
||||
- `TLS_EMPTY_SNI_FAILED`
|
||||
- `HOST_ROUTE_REJECTED`
|
||||
- `RESOLVE_SIGN_INVALID`
|
||||
|
||||
## 5. Deprecated Params Removed
|
||||
|
||||
The public init API no longer accepts:
|
||||
- `accountId`
|
||||
- `serviceDomain`
|
||||
- `endpoint`
|
||||
- `aesSecretKey`
|
||||
Reference in New Issue
Block a user