iOS:http使用swift进行发布

我想出了解决scheme的底部

我正在尝试向我的服务器发出HTTP发布请求。 这是我做的

var request : NSMutableURLRequest = NSMutableURLRequest(URL : NSURL(string : "myURL") let session : NSURLSession = NSURLSession.sharedSession() request.allHTTPHeaderFields = (headers as [NSObject : AnyObject]) request.HTTPShouldHandleCookies = true request.HTTPMethod = "POST" var postData = "frontend=iOS" request.HTTPBody = postData.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true) request.addValue("application/json", forHTTPHeaderField: "Content-Type") request.addValue("application/json", forHTTPHeaderField: "Accept") NSHTTPCookieStorage.sharedHTTPCookieStorage().cookieAcceptPolicy = NSHTTPCookieAcceptPolicy.Always println(request.allHTTPHeaderFields) println(request.HTTPBody) let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in let json:JSON = JSON(data: data) println(json) onCompletion(json, error) }) task.resume() 

这不是设置HTTPRequest.POST

我尝试将请求打印到服务器端的服务器上。 IT表示post是空的

POST:[QueryDict:{}]

我在这里错过了什么? 任何帮助表示赞赏

解答:

我错误地将内容值设置为application / json,实际上它不是json主体。 删除它解决了这个问题

使用https://github.com/Alamofire/Alamofire

简单的networking:)

 Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"]) .response { (request, response, data, error) in println(request) println(response) println(error) } 

你可以使用下面的所有内容。

 public enum Method: String { case OPTIONS = "OPTIONS" case GET = "GET" case HEAD = "HEAD" case POST = "POST" case PUT = "PUT" case PATCH = "PATCH" case DELETE = "DELETE" case TRACE = "TRACE" case CONNECT = "CONNECT" } 

下面是我在日志库中使用的方法: https : //github.com/goktugyil/QorumLogs

  var url = NSURL(string: urlstring) var request = NSMutableURLRequest(URL: url!) request.HTTPMethod = "POST" request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type") request.HTTPBody = postData.dataUsingEncoding(NSUTF8StringEncoding) var connection = NSURLConnection(request: request, delegate: nil, startImmediately: true) 

请参阅如何在Swift中转义HTTP参数,以便将键值对正确编码到数据string中。