2014-11-04 85 views
1

我正在一个简单的HTTP Post调用Swift中的Web服务器,并试图通过一个字典传递几个参数,但服务器似乎没有收到它们,我在这里丢失了什么?我可以在PHP,Perl等中做到这一点,但还没有完全想到在Swift中传递POST参数。谢谢。Swift HTTP Post:为什么这些参数不被识别?

var ret: NSData 
var responseStr: NSString 

var urlString = server + page 
var url:NSURL = NSURL(string: urlString)!  // Creating URL 
var request = NSMutableURLRequest(URL: url) // Creating Http Request 
request.HTTPMethod = "POST" 

// these params don't seem to be recognized 
let params = [ 
    "projectid": "1234", "userid": "somename", "password": "pw" 
] as Dictionary<String, String> 

var err: NSError? 
let requestBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err) 
request.HTTPBody = requestBody 

var response: AutoreleasingUnsafeMutablePointer<NSURLResponse?> = nil 
var error: NSErrorPointer? = nil 

回答

0

Content-Type标头值application/json通常需要服务器侧的应用程序来识别JSON格式请求体。因此,添加此您做出请求之前:

request.addValue("application/json", forHTTPHeaderField:"Content-Type") 

另一种解决方案是使用图书馆一样Just。您的要求是:

Just.post(urlString, json: ["projectid": "1234", "userid": "somename", "password": "pw"]) 
相关问题