我嘗試通過API調用更新數據庫中的對象。我用PUT請求做這個動作。郵寄請求已經完成,工作正常。我以爲它只是複製粘貼...Put請求IOS
的API部分工作得很好,因爲如果我執行下面的curl命令比它更新我的數據庫
$ curl -H 'Accept: application/json' -i -X PUT -d 'UserLogin=Ub0D&EndDate=2014-01-17 00:00:00.0000000&Sport=Fietsen&Distance=1000&Duration=10&Achieved=true&DateCreated=2015-05-09 12:01:00.000000' http://localhost:8089/api/goal/ub0d -k -u ub0d:test123
想要的行,但現在迅速的部分給了我一個壞請求錯誤(400)... 這是我的代碼
var url : NSURL
url = NSURL(string: _apiUrl + connectToApi(apiCall) + String("\(AccountRepository.Instance.getCurrentUserName())"))!
let request = NSMutableURLRequest(URL: url)
if postString != nil {
let postData : NSData = ("UserLogin=Ub0D&EndDate=2014-01-1700:00:00.0000000&Sport=Fietsen&Distance=1000&Duration=10&Achieved=true&DateCreated=2014-01-1700:00:00.0000000").dataUsingEncoding(NSUTF8StringEncoding)!
// create the request
request.HTTPMethod = "PUT"
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "content-type")
request.setValue("application/json", forHTTPHeaderField: "Content-type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
request.HTTPBody = postData
}
var connection: NSURLConnection = NSURLConnection(request: request, delegate: self, startImmediately: true)!
我真的停留在它:(
您已將空格帶出時間戳。你也應該百分之幾的逃脫身體。正如Sulthan所說,你只需要'application/x-www-form-urlencoded'的'Content-Type'並移除'application/json'的'Content-Type'。 – Rob
另外,你的'curl'命令指定'-u';你是否在委託中實現了認證委託方法?服務器實際執行哪種認證? – Rob