Ajuda para Entrevistas
Preparação para a Entrevista
Currículo
Procura de Emprego
Recursos
Subscrição
PT
Telegrama
Iniciar sessão
Menu aberto
Ajuda para Entrevistas
Assistente de IA
Extensão do Navegador
Recursos
Descarregar
FAQ / Ajuda
Preparação para a Entrevista
Banco de Perguntas
Banco de Entrevistas
Entrevistas simuladas
Mentores
Recursos
FAQ / Ajuda
Procura de Emprego
Automação da Procura de Emprego
Análise de Mercado
Vagas
Recursos
Blog
FAQ / Documentação
Telegram Blog
Suporte ao Telegram
Jurídico
Reembolso
Termos
Privacidade
Titulares de direitos
Voltar às perguntas
Banco de Perguntas
iOS - Desenvolvedor
Pergunta
Middle+
classe final NetworkService { 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) request.httpMethod = method.rawValue headers.forEach { request.setValue($0.value, forHTTPHeaderField: $0.key) } if let body, method == .post { request.httpBody = try encoder.encode(body) // ? } let (data, response) = try await session.data(for: request) guard let httpResponse = response as? HTTPURLResponse else { throw Errors.invalidResponse } guard (200...299).contains(httpResponse.statusCode) else { throw Errors.httpStatus(httpResponse.statusCode) } return try decoder.decode(Response.self, from: data) } }
Marcar como concluído
Anterior
Próximo