172 похожих чатов

Здравствуйте, такая проблема, пытаюсь получить информацию в апишке и прилетает

такая ошибка "The data couldn’t be read because it isn’t in the correct format." Вот мой код:

import Foundation

typealias Response = (Result<CodableProtocol, Error>) -> Void

class APIClient {

static let shared = APIClient()
private let session = URLSession.shared

func getWeather(completion: @escaping Response) {
let headers = [
"x-rapidapi-host": "weatherbit-v1-mashape.p.rapidapi.com",
"x-rapidapi-key": "e5383be9c1mshb69181b6433a8fcp173fb8jsn803ad90061ff"
]
let url = "https://weatherbit-v1-mashape.p.rapidapi.com/forecast/current"
guard var component = URLComponents(string: url) else {
completion(.failure(APIClientError.invalidComponent))
return
}
component.queryItems = [
URLQueryItem(name: "lat", value: "49.8419"),
URLQueryItem(name: "lon", value: "24.0315")
]

guard let urlComponent = component.url else {
completion(.failure(APIClientError.invalidURL))
return
}
var request = URLRequest(url: urlComponent)
request.httpMethod = APIRequest.get.rawValue
request.allHTTPHeaderFields = headers

session.dataTask(with: request, completionHandler: { data, response, error -> Void in
if let err = error {
completion(.failure(err))
return
}
do {
let weatherDecoded: CurrentWeather = try JSONDecoder().decode(CurrentWeather.self, from: data ?? Data())
completion(.success(weatherDecoded))
} catch {
completion(.failure(error))
// print(error.localizedDescription)
}
}).resume()
}
}

8 ответов

13 просмотров

у тебя с запросом что то неверно - ты видел, что тебе возвращает сервак? <html> <head><title>500 Internal Server Error</title></head> <body bgcolor="white"> <center><h1>500 Internal Server Error</h1></center> <hr><center>openresty/1.11.2.2</center> </body> </html>

Larik🧚🏻✨- Автор вопроса
Larik🧚🏻✨
Я в postman’e тестил и все работало

Перед do в твоем коде добавь эти строки и ты увидишь, что тебе отвечает сервер let str = String(decoding: data!, as: UTF8.self) print(str)

Larik🧚🏻✨
Окей, спасибо, посмотрю

Можешь просто в терминале запускать - тот же ответ curl --location --request GET 'https://weatherbit-v1-mashape.p.rapidapi.com/forecast/current' \ --header 'x-rapidapi-host: weatherbit-v1-mashape.p.rapidapi.com' \ --header 'x-rapidapi-key: e5383be9c1mshb69181b6433a8fcp173fb8jsn803ad90061ff'

Larik🧚🏻✨- Автор вопроса
Sergey M
Можешь просто в терминале запускать - тот же ответ...

Но я все равно не понимаю как это решить?

Larik🧚🏻✨
Но я все равно не понимаю как это решить?

показывай запрос постмана который работал. МОжно в личку

Larik🧚🏻✨
Но я все равно не понимаю как это решить?

у меня работает без forecast в урле - let url = "https://weatherbit-v1-mashape.p.rapidapi.com/current"

Похожие вопросы

Обсуждают сегодня

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта