標籤:
網上的這個三個類庫快要看吐了,SwiftHttp,YYHRquest,AFnetWorking;http請求無非是調用這些類庫中的put,get,post,delete,其中需要我們動腦筋的大概就是參數的傳遞了,
一: put與delete,方式一樣,直接在url 後面拼接¶meter就可以了,如http://10.111.11.11:8088/api/?sqlname=GET_ALL&name=dog&password=123
就可以了,當然也可以用類庫提供的字典來放參數
//使用的時swiftHttp
var request = HTTPTask() var parameters:Dictionary<String,String>=["name":"dog","password":"123"]request.GET("http://10.111.11.11:8088/api/?sql=GET_ALL", parameters: nil, success: {(response: HTTPResponse) -> Void in if response.responseObject != nil { println("success") } },failure: {(error: NSError, _) -> Void in println("false")})
</pre><pre>
二:post 和put 怎麼辦?如果伺服器不認識字典型的怎麼辦?(oh ,what a fuck day )
我只能說默默的轉換吧
<pre name="code" class="objc"> public func POST(url: String, parameters: Dictionary<String,AnyObject> , success:((HTTPResponse) -> Void)!, failure:((NSError, HTTPResponse?) -> Void)!) { //var opt = var opt = self.create(url, method:.POST, parameters: parameters,success: success,failure: failure) if opt != nil { opt!.start() } }
這個是swiftHttp 中的post 方式,看著蠻好的,但是這個字典型的參數伺服器不認識他只要json 類型的,好吧,山不轉水轉,水不轉人轉,我不用這個了
三:我要用YYHRequest這個類庫試試,(看起來好山寨的名字,不過好處就是你可以改造他)
func post(strPara:[String],strUserName:String,strPassword:String){ let request = YYHRequest(url: NSURL(string:"http://10.11.11.1:8088/api/?sql=UPDATE1" var parameterStr:String = "" request.method = "POST" //下面這種寫法是demo給出來的,然後並沒有什麼卵用,伺服器還是不認識 request.parameters["name"] ="dog" request.parameters["password"] ="123"//這麼寫伺服器真的認識,就是覺得這是json ,我也是醉了 parameterStr="{'name':'dog','password':'123'}" request.parameters[""] = parameterStr request.completionHandler = {response, data, error in } request.loadRequest() }
額,好吧,用完上面的post終於可以插資料到資料庫中了,哈哈,這個參數太簡單了,我也覺得,來個嵌套的,好嘞,您看下期吧!
swift 服務端要求json對象怎麼辦?(一)