与Vapor客户端一起苦苦挣扎

时间:2017-02-02 17:12:32

标签: swift http client vapor

我试图通过我的Steam网络服务向Google Places API提出简单的请求。

这就是我的控制器的样子:

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 可以直接在浏览器中正常工作。 我也无法找到捕捉和调试任何错误的有用方法。

1 个答案:

答案 0 :(得分:1)

我需要将import Foundationdrop.client = FoundationClient.self添加到main.swift以获得类似的工作电话。