进行API调用,通过用户名和密码进行基本身份验证

时间:2015-04-28 15:16:41

标签: ios ruby-on-rails xcode api swift

我在一个rails项目上编写了一个api,并在Xcode 6.3上使用Swift编写了一个应用程序 api由用户名和密码保护,使用基本身份验证。

class Api::V1::RestaurantsController < ApplicationController
    http_basic_authenticate_with name: "api", password: ENV['API_SECRET']

API和身份验证在我的localhost上正常工作。但我无法在我的iOS应用程序上为iPhone拨打电话。我是Xcode的新手,但我想进行API调用,传递用户名和密码,然后重新获得json。代码是:

var latitude = 48.858564
var longitude = 2.294476
let PasswordString = "api:1234" //username:password
let PasswordData = PasswordString.dataUsingEncoding(NSUTF8StringEncoding)
let base64EncodedCredential = PasswordData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)

let urlPath: String = "http://localhost:3000/api/v1/restaurants?latitude=\(latitude)&longitude=\(longitude)"

var url: NSURL = NSURL(string: urlPath)!

var request: NSMutableURLRequest = NSMutableURLRequest(URL: url)
request.setValue("Basic \(base64EncodedCredential)", forHTTPHeaderField: "Authorization")
request.HTTPMethod = "GET"


NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
var err: NSError
var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary
println("\(jsonResult)")
})

我在操场上试过这段代码但是我没有得到任何结果。您是否知道如何通过用户名和密码进行HTTP调用?

0 个答案:

没有答案