Βοήθεια συνέντευξης
Προετοιμασία συνέντευξης
περίληψη
Αναζήτηση εργασίας
Πόροι
Συνδρομή
EL
Τηλεγράφημα
Σύνδεση
Άνοιγμα μενού
Βοήθεια συνέντευξης
Βοηθός AI
Επέκταση προγράμματος περιήγησης
Πόροι
Λήψη
Συχνές ερωτήσεις / Βοήθεια
Προετοιμασία συνέντευξης
Τράπεζα Ερωτήσεων
Τράπεζα Συνεντεύξεων
Εικονικές συνεντεύξεις
Μέντορες
Πόροι
Συχνές ερωτήσεις / Βοήθεια
Αναζήτηση εργασίας
Αυτοματοποίηση αναζήτησης εργασίας
Ανάλυση Αγοράς
Θέσεις εργασίας από το Telegram
Πόροι
Καριέρα
Ιστολόγιο
Συχνές ερωτήσεις / Τεκμηρίωση
Ιστολόγιο Telegram
Υποστήριξη Telegram
Νομικά
Επιστροφή χρημάτων
Όροι
Απόρρητο
Κάτοχοι δικαιωμάτων
Επιστροφή στις ερωτήσεις
Τράπεζα Ερωτήσεων
iOS - Προγραμματιστής
ερώτηση
Middle+
enum HTTPMethod: String { case post = "POST" } enum Errors: Error { case invalidUrl case invalidQuery case invalidResponse case httpStatus(Int) } protocol MyDecoder { func decode<T: Decodable>(_: _ type: T.Type, from data: Data) throws -> T } final class NetworkService { private let session: URLSession private let encoder = JSONEncoder() private let decoder: MyDecoder init( session: URLSession = .shared, decoder: MyDecoder ) { self.session = session self.decoder = decoder } func request<Response: Decodable, Body: Encodable>( urlString: String, method: HTTPMethod, body: Body? = nil, headers: [String: String] = [:], query: [String: String] = [:] ) async throws -> Response { guard var components = URLComponents(string: urlString) else { throw Errors.invalidUrl } if !query.isEmpty { components.queryItems = query.map { URLQueryItem(name: $0.key, value: $0.value) } } guard let url = components.url else { throw Errors.invalidQuery } var request = URLRequest(url: url)
Επισήμανση ως ολοκληρωμένης
Προηγούμενος
Επόμενο