Я пытаюсь сделать простой запрос на получение доступа к API Google Адресов с помощью веб-сервиса Steam.Борьба с клиентом Vapor
Это то, что мой контроллер выглядит следующим образом:
import Vapor
import HTTP
import VaporPostgreSQL
final class MainController {
var currentDroplet: Droplet!
func addRoutes(drop: Droplet) {
currentDroplet = drop
drop.get("places",String.self, String.self, handler: getNearbyPlaces)
}
func getNearbyPlaces(request: Request, lat: String, long: String) throws -> ResponseRepresentable {
let googleAPIKey = "MY_KEY"
let googlePlacesBaseURL = "https://maps.googleapis.com/maps/api/place/nearbysearch"
let url = googlePlacesBaseURL + "/json?location=\(lat),\(long)&radius=500&types=food&key=" + googleAPIKey
print(url)
let apiResponse = try drop.client.get(url)
print(apiResponse)
return apiResponse.json != nil ? apiResponse.json! : "Something went bad"
}
}
Это должно быть так же просто, как, впрочем, когда я называю его, запрос продолжает висеть в течение длительного времени, а затем возвращает 500. Обратите внимание, что напечатанный url в консоли отлично работает непосредственно в браузере. Я не мог найти полезный способ поймать и отладить любые ошибки.
- правильный URL-адрес? – muescha
Да. URL-адрес, записанный на консоль, отлично работает в браузере –
, браузер самостоятельно преобразует URL-адрес в нужный формат - если вы вызываете через программу, вам, возможно, нужно его закодировать – muescha