【问题标题】:Using Alamofire to get short URL from Google with Swift使用 Alamofire 通过 Swift 从 Google 获取短 URL
【发布时间】:2018-03-10 11:29:37
【问题描述】:

我正在尝试在我的应用程序中添加短网址作为用户的工具,这是 this answer 附带的,不幸的是它没有用! :

import AFNetworking

let googleShortURLKey = "MYKEY"

func getShortURLFromGoogle(longURL: String) {
    let manager = AFHTTPSessionManager()
    manager.requestSerializer = AFJSONRequestSerializer() as AFJSONRequestSerializer
    let params = [ "longUrl": longURL ]

    manager.POST("https://www.googleapis.com/urlshortener/v1/url?key=\(googleShortURLKey)", parameters: params, success: {
        (operation: AFHTTPRequestSerializer!,responseObject: AnyObject!) in
        if let responseObject = responseObject as? NSDictionary {
            self.shortURL = responseObject["id"] as? String //That's what you want
        }
    },
                 failure: { (operation: AFHTTPRequestSerializer!,error: NSError!) in
                    print("Error while requesting shortened: " + error.localizedDescription)
    })
}

【问题讨论】:

    标签: ios swift google-url-shortener


    【解决方案1】:

    我已经使用 Alamofire 框架解决了您的问题:

    import UIKit
    import Alamofire
    
    
    class ShortURLToolViewController: UIViewController {
    
    
        let googleShortURLApiWithKey = "https://www.googleapis.com/urlshortener/v1/url?key=YOURKEY"
        var finalShortURL: String? // To save the short url
    
        override func viewDidLoad() {
            super.viewDidLoad()
            getShortURLFromGoogle(longURL: "https://github.com/")
        }
    
        func getShortURLFromGoogle (longURL: String){
            let params = ["longUrl": longURL]
    
            Alamofire.request(googleShortURLApiWithKey, method: .post, parameters: params, encoding: JSONEncoding.default).responseJSON { responds in
    
                if let JSON = responds.result.value {
                    print(JSON)
                    let json = try? JSONSerialization.jsonObject(with: responds.data!, options: [])
                    if let dictionary = json as? [String: Any] {
                        if let shortURL = dictionary["id"] as? String {
                            // access individual value in dictionary
                            self.finalShortURL = shortURL
                            print(self.finalShortURL ?? "NO DATA!")
                        }
                    }
                }
            }
        }
    
    }//Class Ends
    

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 1970-01-01
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多