我能';在任何api中,在swift项目的post请求中,在body中发送body in数据
我不能在任何api的swift项目的post请求中发送正文中的数据。如果我将日期发送到加载项url,api将响应我能';在任何api中,在swift项目的post请求中,在body中发送body in数据,swift,Swift,我不能在任何api的swift项目的post请求中发送正文中的数据。如果我将日期发送到加载项url,api将响应 let url: String = "https://maps.googleapis.com/maps/api/place/autocomplete/json" let para = ["key":googlekey, "components":"country:ids", "input":str, "types": "address"] Alamofire.request(ur
let url: String = "https://maps.googleapis.com/maps/api/place/autocomplete/json"
let para = ["key":googlekey, "components":"country:ids", "input":str, "types": "address"]
Alamofire.request(url, method: .post,parameters: para, encoding: JSONEncoding.default, headers: nil)
.responseJSON { dataResponse in
因此,正如我正确理解的,您使用的是Google Maps API,您尝试执行的请求是GET请求,这意味着您需要在URL本身而不是正文中指定请求参数。我想你的要求应该是这样的
let googleKey = "your api key"
let url: String = "maps.googleapis.com/maps/api/place/autocomplete/json?input=Apple&components=country:ids&input=\(str)&types=adress&key=\(googleKey)"
Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON
希望这会有所帮助。你说:
我不能在任何api的swift项目的post请求中发送正文中的数据
这是正确的
根据定义,GET
请求是从web服务请求信息(其中参数在URL中提供),而POST
是向web服务提供信息(要存储的信息在请求主体中提供)。对Google Places API的这个搜索请求只是从他们的web服务请求信息,而不是存储任何内容,因此这是一个GET
请求是合适的
很明显,这些参数只应包含在请求的URL中:
位置自动完成请求是以下形式的HTTP URL:
https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
其中,输出
可以是以下值之一:
(推荐)以JavaScript对象表示法(json)表示输出json
表示输出为xmlxml
GET
请求,为您的URL添加参数(为您完成所有百分比转义):
方法
默认为.get
,而编码
默认为URLEncoding.default
,因此可以省略它们以减少语法噪音
顺便说一下,如果您对
GET
和POST
之间的区别感兴趣(这是web服务API开发人员使用的基本原理),请参阅HTTP规范中关于“方法”的讨论,例如vs.Hi,很高兴看到代码。这将有助于更好地理解问题。let url:String=”“let para=[“key”:googlekey,“components”:“country:ids”,“input”:str,“types”:“address”]Alamofire.request(url,method:.post,para,encoding:JSONEncoding.default,headers:nil)。responseJSON{dataResponse in请将您的代码作为问题的一部分进行共享。这样,我们就可以更好地理解您的问题。我正在为我们的服务器使用相同的代码发布api,但服务器没有响应,而是使用旧project server响应(旧项目中使用了AfnerWorking和objective c)
Alamofire.request(url, parameters: para) // or, in Alamofire 5, `AF.request(...)`
.responseJSON { response in
...
}