如何在我的iOS应用程序中使用Alamofire在HTTP正文中发送带有简单字符串的POST请求?
默认情况下,Alamofire需要请求的参数:
Alamofire.request(.POST, "http://mywebsite.com/post-request", parameters: ["foo": "bar"])
Run Code Online (Sandbox Code Playgroud)
这些参数包含键值对.但我不想在HTTP正文中发送带有键值字符串的请求.
我的意思是这样的:
Alamofire.request(.POST, "http://mywebsite.com/post-request", body: "myBodyString")
Run Code Online (Sandbox Code Playgroud) 我Alamofire使用自定义标头实现了POST请求,因为我们使用OAuth2并且我们必须在标头内的每个请求中发送访问令牌.在这种情况下,我必须使用自定义标头.
HTTP标头字段的访问标记值Authorization对我不起作用.服务器生成错误,因为具有访问令牌的OAuth的标头信息不可用.
但是我的代码中的错误是什么?
这是我目前的代码:
let URL = NSURL(string: url + "/server/rest/action")
var mutableURLRequest = NSMutableURLRequest(URL: URL!)
mutableURLRequest.setValue("Bearer \(accessToken)", forHTTPHeaderField: "Authorization")
//this method does not work anymore because it returns an error in the response
//Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = ["Authorization": "Bearer \(accessToken)"]
Alamofire.Manager.sharedInstance
.request(.POST, mutableURLRequest, parameters: parameters, encoding: .JSON)
.validate()
.responseJSON {
(request, response, data, error) -> Void in
NSLog("REQUEST: \(request)")
NSLog("RESPONSE: \(response)")
NSLog("DATA: \(data)")
NSLog("ERROR: \(error)")
}
Run Code Online (Sandbox Code Playgroud) 如何确定iOS连接类型?
我想知道我的设备上是否有Edge,3G,4G或者Wifi可用.
这个信息我需要加载不同大小的不同数据.
因此,我不想加载连接类型为"Edge"的4 MB图像.