Ios 莫亚改变网址

Ios 莫亚改变网址,ios,swift,google-places-api,google-maps-sdk-ios,moya,Ios,Swift,Google Places Api,Google Maps Sdk Ios,Moya,我试图使用Moya调用googleplacesApi,但URL有问题Maya更改我的URL中的字符。在这种情况下,例如在字符之前?添加%3f并更改,中的%2C。当我将此地址复制并粘贴到我的web浏览器中时,我收到一个错误,但当我删除%3f并在上更改和%2C时,我收到一个正确的回答表单API。如果我不想更改url中的此字符,我应该在Moya中设置什么 我的Moya提供商看起来是这样的: extension GooglePlacesService: TargetType { var baseURL

我试图使用
Moya
调用
googleplaces
Api,但URL有问题<代码>Maya更改我的URL中的字符。在这种情况下,例如在字符
之前?
添加
%3f
并更改
中的
%2C
。当我将此地址复制并粘贴到我的web浏览器中时,我收到一个错误,但当我删除
%3f
并在
上更改和
%2C
时,
我收到一个正确的回答表单API。如果我不想更改url中的此字符,我应该在
Moya
中设置什么

我的
Moya
提供商看起来是这样的:

extension GooglePlacesService: TargetType {

var baseURL: URL {
    return URL(string: "https://maps.googleapis.com")!
}

var path: String {
    switch self {
    case .gasStation:
        return "/maps/api/place/nearbysearch/json?"
    }
}

var parameters: [String : Any]? {
    switch self {
    case .gasStation(let lat, let long, let type):
        return ["location": "\(lat),\(long)", "type" : "gas_station", "rankby" : "distance", "keyword" : "\(type)", "key" : GoogleKeys.googlePlacesKey]
    }
}

var parameterEncoding: ParameterEncoding {
    switch self {
    case .gasStation:
        return URLEncoding.queryString
    }
}

var method: Moya.Method {
    switch self {
    case .gasStation:
        return .get
    }
}

var sampleData: Data {
    switch self {
    case .gasStation:
        return "".utf8Encoded
    }
}

var task: Task {
    switch self {
    case .gasStation:
        return .request
    }
  }
}


private extension String {
var urlEscaped: String {
    return self.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)!
}

var utf8Encoded: Data {
    return self.data(using: .utf8)!
  }
}
生成Moya的URL如下所示(不适用于API):

https://maps.googleapis.com/maps/api/place/nearbysearch/json%3F?key=MYAPIKEY&keyword=XXXXXX&location=51.0910166687869%2C17.0157277622482&rankby=distance&type=gas_station

与API一起使用的URL:


https://maps.googleapis.com/maps/api/place/nearbysearch/json?key=MYAPIKEY&keyword=XXXXXX&location=51.0910166687869,17.015727622482&rankby=distance&type=gas_station

我在将“?”转换为“%3F”时遇到了相同的问题:

解决方案是在路径中不带复杂符号(如“?”、“,”),并使用URLEncoding将它们放入Moya设置的var Task。默认设置为:

问题已解决。在
URL
中,您必须转义“?”做记号我们应该在
Moya
中使用的正确url如下所示:
https://maps.googleapis.com/maps/api/place/nearbysearch/json
参数:
key=MYAPIKEY&keyword=XXXXXX&location=51.0910166687869,17.015727622482&rankby=distance&type=gas_station
您能写出完整的解决方案吗?我是新来的莫亚,也经历了这个错误。谢谢