2016-05-31 30 views
0

我在swift 3中有一个项目并且想要发出GET请求。但是,Alamofire尚未更新为swift 3. Alamofire何时支持swift 3,以及如何用swift 3中的参数硬编码GET请求?如何在swift 3中执行GET请求

+0

@EricAya在我的情况,我不想使用Alamofire与斯威夫特3,因为它是只支持iOS的9+。 –

+0

请参阅第三方API问题(“何时将Alamofire支持Swift 3”)到他们各自的GIT页面,而不是SO。 –

回答

2

Alamofire将被更新为Swift 3 ...只要他们接近它,我想。没有Alamofire GET请求是相当容易:

let req = NSMutableURLRequest(URL: NSURL(string:"your-endpoint-url?parameter=value")!) 
    req.HTTPMethod = "GET" 
    req.HTTPBody = "key=\"value\"".dataUsingEncoding(NSUTF8StringEncoding) //This isn't for GET requests, but for POST requests so you would need to change `HTTPMethod` property 
    NSURLSession.sharedSession().dataTaskWithRequest(req) { data, response, error in 
     if error != nil { 
      //Your HTTP request failed. 
      print(error.localizedDescription) 
     } else { 
      //Your HTTP request succeeded 
      print(String(data: data!, encoding: NSUTF8StringEncoding)) 
     } 
    }.resume() 
+0

你是否也知道如何添加验证? –

+0

并添加参数? –

+0

@SimonNarang请参阅编辑参数。对于身份验证,我假设你是指OAuth?看看这个库:https://github.com/OAuthSwift/OAuthSwift – brimstone

1

现在有发现Alamofire迅速3支在这里:https://github.com/Alamofire/Alamofire.git。看起来相当稳定,我还没有遇到任何重大问题。

您可以在您的podfile使用此代码很容易安装使用cocoapods这个分支:如果你的项目经验建立,因为安装这种吊舱的错误

pod 'Alamofire', 
    :git => 'https://github.com/Alamofire/Alamofire.git', 
    :branch => 'swift3' 

,然后回去和它添加到年底你podfile:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'NO' 
     end 
    end 
end 
26

夫特3.0

var request = URLRequest(url: URL(string: "http://example.com")!) 
    request.httpMethod = "POST" 
    let session = URLSession.shared 

    session.dataTask(with: request) {data, response, err in 
     print("Entered the completionHandler") 
    }.resume() 
+2

谢谢!我如何添加参数? –

+0

同样的问题..如何添加参数? – parilogic

+1

var err:NSError? request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params,options:nil,error:&err) request.addValue(“application/json”,forHTTPHeaderField:“Content-Type”) request.addValue(“application/json”,forHTTPHeaderField :“接受”) – Haseeb

16

斯威夫特3

let url = URL(string: "http://example.com/get") 
    URLSession.shared.dataTask(with: url!, completionHandler: { 
     (data, response, error) in 
     if(error != nil){ 
      print("error") 
     }else{ 
      do{ 
       let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String : AnyObject] 


       OperationQueue.main.addOperation({ 
        self.tableView.reloadData() 
       }) 

      }catch let error as NSError{ 
       print(error) 
      } 
     } 
    }).resume() 

REST API In Swift 3 And Xcode 8 Using URLSession And JSONSerialization

+1

谨慎阐述? – RamenChef

0
func getApiMethod() { 
    let url = URL(string: "enter url here")! 
    URLSession.shared.dataTask(with: url, completionHandler: { (data, response, error) in 
     if (error != nil) { 
      print("error") 
     } else { 
      do { 
       let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String : AnyObject] 
       // For count 
       print(json as NSDictionary) 

      } catch let error as NSError{ 
       print(error) 
      } 
     } 
    }).resume() 
}