Hon*_*ney 8 http httprequest http-headers http-parameters swift
我读了这个问题,但它没有回答我的问题.
对我来说,标题和参数都是字典,区别在于标题是[String : String]参数是什么[String : AnyObject]?,所以如果您的参数也是字符串,那么您可以在标题内发送它们(同时使用'x-'前缀表示它们不是标准标题)这是一种常见但不好的做法.
headers和之间还有其他区别parameters吗?parameters?Alamofire Request方法
public func request(
method: Method,
_ URLString: URLStringConvertible,
parameters: [String: AnyObject]? = nil,
encoding: ParameterEncoding = .URL,
headers: [String: String]? = nil)
-> Request
{
return Manager.sharedInstance.request(
method,
URLString,
parameters: parameters,
encoding: encoding,
headers: headers
)
}
Run Code Online (Sandbox Code Playgroud)
作为一个例子,我看到人们["x-ios-version" : UIDevice.currentDevice().systemVersion]通过标题传递或构建版本
Hon*_*ney 11
从Rob在聊天中的讨论:
的标准是,如果它的信息有关的请求或关于客户端,则该标头是适当的.
但如果它是请求本身的内容(例如,您从服务器请求的内容,一些标识要返回的项目的详细信息,一些要保存在Web服务器上的详细信息等),那么它就是一个参数.
举个例子:
参数
假设您正在为产品请求图像.产品ID可以是一个参数.图像大小(缩略图与完整大小)可能是另一个参数.产品ID和请求的图像大小是作为请求内容的一部分提供的"一些细节"(或参数)的示例.
标题
但是请求是JSON或x-www-form-urlencoded之类的东西不是请求的内容,而是有关请求的信息(尤其是因为Web服务需要知道如何解析请求的主体).这就是为什么它是一个标题.
以下是差异列表:
它们是为不同目的而设计的.标头携带元信息,参数携带实际数据.
HTTP标头不能携带Unicode内容.请参阅此处我可以在HTTP标头中使用Unicode字符吗?
但参数可以携带Unicode内容.
Web服务器将自动取消转义/解码参数值.这不适用于标题.
如果要通过标头发送unicode内容,则需要手动编码/解码内容.经常使用Base64编码.
URL上的最终用户(查询参数)可以看到参数,但最终用户可以隐藏标题.
| 归档时间: |
|
| 查看次数: |
9902 次 |
| 最近记录: |