Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como realizar requisições de rede em dispositivos Apple utilizando Swift

Realizar requisições de rede é uma tarefa comum no desenvolvimento de aplicativos para dispositivos Apple, como iPhone e iPad. Utilizando a linguagem Swift, é possível fazer essas requisições de forma eficiente e segura. Neste artigo, vamos explorar como executar requisições de rede usando a biblioteca URLSession, que é parte do framework Foundation.


Exemplo 1: Requisição GET simples


Para realizar uma requisição GET, você pode usar o seguinte código Swift:


import Foundation

let url = URL(string: "https://api.example.com/data")!

let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
print("Erro: \(error.localizedDescription)")
return
}

guard let data = data else {
print("Dados não encontrados")
return
}

if let responseString = String(data: data, encoding: .utf8) {
print("Resposta do servidor: \(responseString)")
}
}

task.resume()

Este exemplo cria uma requisição GET para "https://api.example.com/data". A função dataTask envia a requisição e, ao receber a resposta, verifica se há erros, se os dados estão presentes e, em seguida, converte os dados em uma string para exibição.


Exemplo 2: Requisição POST com corpo JSON


Para enviar dados para o servidor, você pode realizar uma requisição POST com um corpo JSON:


import Foundation

let url = URL(string: "https://api.example.com/submit")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

let json: [String: Any] = ["name": "John Doe", "age": 30]
let jsonData = try? JSONSerialization.data(withJSONObject: json)

request.httpBody = jsonData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Erro: \(error.localizedDescription)")
return
}

guard let data = data else {
print("Dados não encontrados")
return
}

if let responseString = String(data: data, encoding: .utf8) {
print("Resposta do servidor: \(responseString)")
}
}

task.resume()

Neste exemplo, criamos um dicionário JSON e o serializamos em jsonData. A requisição POST é configurada para enviar esse JSON como corpo da requisição.


Exemplo 3: Tratamento de erros e resposta


É importante tratar adequadamente os erros e a resposta do servidor. Aqui está um exemplo de como fazer isso:


import Foundation

let url = URL(string: "https://api.example.com/data")!

let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
print("Erro: \(error.localizedDescription)")
return
}

guard let httpResponse = response as? HTTPURLResponse, (200\...299).contains(httpResponse.statusCode) else {
print("Resposta inválida do servidor")
return
}

guard let data = data else {
print("Dados não encontrados")
return
}

do {
let jsonResponse = try JSONSerialization.jsonObject(with: data, options: [])
print("Resposta JSON: \(jsonResponse)")
} catch {
print("Erro ao parsear JSON: \(error.localizedDescription)")
}
}

task.resume()

Neste exemplo, verificamos se a resposta HTTP está no intervalo de sucesso (200-299) e tentamos parsear a resposta como JSON.


To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.