请选择
Edge Acceleration
  • Site Acceleration
    • Overview
    • Access Control
      • Token Authentication
    • File Optimization
      • Smart Compression
    • Network Optimization
      • HTTP/2
      • HTTP/3(QUIC)
        • Overview
        • Enable HTTP/3
        • QUIC SDK
          • SDK Overview
          • SDK Download and Integration
          • Sample Code
            • Android
            • iOS
          • API Documentation
            • Android
            • iOS
      • IPv6 Access
      • Maximum Upload Size
      • WebSocket
      • Client IP Geolocation Header
      • Client IP Geographical Location
      • gRPC
    • URL Rewrite
      • Access URL Redirection
      • Origin-Pull URL Rewrite
    • Modifying Header
      • Modifying HTTP Response Headers
      • Modifying HTTP Request Headers
    • Custom Error Page
    • Request and Response Actions
      • Processing order
      • Default HTTP Headers of Origin-Pull Requests
      • Default HTTP Response Headers
  • Smart Acceleration
  • L4 Proxy
    • Overview
    • Creating an L4 Proxy Instance
    • Modifying an L4 Proxy Instance
    • Disabling or Deleting an L4 Proxy Instance
    • Batch Configuring Forwarding Rules
    • Obtaining Real Client IPs
      • Obtaining Real TCP Client IPs via TOA
      • Obtaining Real Client IPs Through Protocol V1/V2
        • Overview
        • Method 1: Obtaining Real Client IPs Through Nginx
        • Method 2: Parsing Real Client IPs on Application Server
        • Format of Real Client IPs Obtained Through Proxy Protocol V1/V2
      • Transmitting Client Real IP via SPP Protocol
  • Edge DNS
    • Hosting DNS Records
      • Modifying DNS Servers
      • Configuring DNS Records
      • Advanced DNS Configuration
    • Domain Connection
      • Adding A Domain Name for Acceleration
      • Ownership Verification
      • Modifying CNAME Records
    • Domain alias
      • Overview
      • Configuration Guide
      • Batch Connecting SaaS Domain Names
      • Configuring Alias Domain Names for Disaster Recovery
    • Traffic Scheduling
      • Traffic Scheduling Management
    • Origin Configuration
      • Load Balancing
        • Overview
        • Quickly Create Load Balancers
        • Health Check Policies
        • Viewing the Health Status of Origin Server
        • Related References
          • Load Balancing-Related Concepts
          • Introduction to Request Retry Strategy
      • Origin Group Configuration
      • Origin-pull configuration
        • Configuring Origin-Pull HTTPS
        • Host Header Rewrite
        • Controlling Origin-pull Requests
        • Redirect Following During Origin-Pull
        • HTTP/2 Origin-Pull
        • Range GETs
      • Related References
        • ld Version Origin Group Compatible Related Issues
        • VOD Origin Server Details
      • Collect EdgeOne origin-pull node IP
  • Edge Cache
    • Overview
    • EdgeOne Cache Rules
      • Content Cache Rules
      • Cache Key Introduction
      • Vary Feature
    • Cache Configuration
      • Custom Cache Key
      • Node Cache TTL
      • Status Code Cache TTL
      • Browser Cache TTL
      • Offline Caching
      • Cache Prefresh
    • Clear and Preheat Cach
      • Cache Purge
      • URL Pre-Warming
    • How to improve the Cache Hit Rate of EdgeOne
  • Rules Engine
    • Overview
    • Supported Matching Types and Actions
    • Rule Management
    • variables
  • Image Processing

iOS

The following code shows how to create QUIC requests with the iOS client. For details of the API description, see iOS APIs.

Creating GET Requests

// Session configuration
TQUICURLSessionConfiguration *quicSessionConfiguration = [TQUICURLSessionConfiguration defaultConfiguration];
// Congestion control algorithm
quicSessionConfiguration.congestionType = TQUICCongestionTypeBBR;
// Connection timeout
quicSessionConfiguration.connectTimeoutMillis = 6 * 1000;
// Create SessionManager. See %!s(<nil>) for instructions.
TQUICHTTPSessionManager *quicSessionManager = [[TQUICHTTPSessionManager alloc] initWithSessionConfiguration:quicSessionConfiguration];
// (Optional) Serialize via TQUICHTTPRequestSerializer/TQUICHTTPResponseSerializer. See %!s(<nil>) for instructions.

// Initiate a GET request.
[quicSessionManager GET:@"url"
parameters:nil
headers:nil
timeoutInterval:0
downloadProgress:nil
success:^(TQUICURLSessionTask * _Nonnull task, id _Nullable responseObject) {
// When the request is executed successfully, it returns the response data.
// Get the response headers. Since this is an HTTP response, it can be converted into NSHTTPURLResponse.
NSDictionary *headers = [(NSHTTPURLResponse *)task.response allHeaderFields];
// Get the response body.
id body = responseObject;
} failure:^(TQUICURLSessionTask * _Nullable task, NSError * _Nonnull error) {
// When the request fails to be executed, it returns the error message.
NSInteger errorCode = error.code;
}];

Creating POST Requests

// Session configuration
TQUICURLSessionConfiguration *quicSessionConfiguration = [TQUICURLSessionConfiguration defaultConfiguration];
// Congestion control algorithm
quicSessionConfiguration.congestionType = TQUICCongestionTypeBBR;
// Connection timeout
quicSessionConfiguration.connectTimeoutMillis = 6 * 1000;
// Create SessionManager. See %!s(<nil>) for instructions.
TQUICHTTPSessionManager *quicSessionManager = [[TQUICHTTPSessionManager alloc] initWithSessionConfiguration:quicSessionConfiguration];
// (Optional) Serialize via TQUICHTTPRequestSerializer/TQUICHTTPResponseSerializer. See %!s(<nil>) for instructions.

// Construct body data.
NSData *bodyData;
// Initiate a POST request.
[quicSessionManager POST:@"url"
body:bodyData
headers:nil
timeoutInterval:timeInterval
uploadProgress:^(NSProgress * _Nonnull uploadProgress) {
        
    } success:^(TQUICURLSessionTask * _Nonnull task, id  _Nullable responseObject) {
// When the request is executed successfully, it returns the response data.
// Get the response body.
id body = responseObject;

    } failure:^(TQUICURLSessionTask * _Nullable task, NSError * _Nonnull error) {
// When the request fails to be executed, it returns the error message.
NSInteger errorCode = error.code;
}];

Canceling Requests

// Create SessionManager.

...
// Initiate a request via SessionDataTask. See %!s(<nil>) for instructions.
TQUICURLSessionDataTask *dataTask =
[quicSessionManager dataTaskWithRequest:request
                   uploadProgress:nil
                       downloadProgress:nil
                  completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {

// Run callback after the request has finished.

}];

//Send the request.
[dataTask resume];

//Cancel the request.
[dataTask cancel];