Как HTTP-соединение с URLRequest в Swift

Я хочу установить TCP-туннель через HTTP(S) прокси с API высокого уровня, т.е. URLRequest предоставляемые iOS/macOS SDK в Swift с HTTP CONNECT команда. У меня есть следующий код, предполагая, что прокси работает localhost:8080:

import Foundation

let session = URLSession(configuration: .default)
var request = URLRequest(url: URL(string: "http://localhost:8080")!)

request.httpMethod = "CONNECT"

let semaphore = DispatchSemaphore(value: 0)
let task = session.dataTask(with: request) {
    data, response, error in

    dump(error)

    semaphore.signal()
}
task.resume()
semaphore.wait()

Теперь построенный HTTP-запрос выглядит так:

CONNECT / HTTP/1.1
Host: localhost:8080
…

Итак, моя проблема: как мне установить цель запроса, которая в настоящее время / например example.com:80, Ожидаемый запрос должен выглядеть так:

CONNECT example.com:80 HTTP/1.1
Host: localhost:8080
…

Чтобы увидеть запрос, просто запустите:

nc -l 8080

0 ответов

Другие вопросы по тегам