我正在使用这个API解析视频链接并获取该视频的直接链接。当我在浏览器中执行请求时,我得到的是
但是,当我在 Xcode 中发出请求时,它会向控制台打印不同的响应。
这是我的代码
import UIKit
import Alamofire
import SwiftyJSON
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
parseData()
// Do any additional setup after loading the view, typically from a nib.
}
func parseData(){
var requestedLink: String
let streamableLink = "https://api.streamable.com/import?url="
requestedLink = "https://instagram.com/p/BVn8hvZgNQW/"
let url1 = URL(string: "\(streamableLink)\(requestedLink)")
print(url1)
// parse data to the STREAMABLE API
Alamofire.request("\(streamableLink)\(requestedLink)", method: .get, parameters: nil, encoding: JSONEncoding.default).responseJSON { response in
print(response)
switch response.result {
case .success(let value):
let json = JSON(value)
let firstReply = json["shortcode"].stringValue
print(firstReply)
var shortCode: String
let secondLinkToParse = "https://api.streamable.com/videos/"
shortCode = "\(firstReply)"
let url2 = URL(string: "\(secondLinkToParse)\(shortCode)")
print(url2)
// parse data to the STREAMABLE API
Alamofire.request("\(secondLinkToParse)\(shortCode)", method: .get, parameters: nil, encoding: JSONEncoding.default).responseJSON { response in
print(response)
switch response.result {
case .success(let value):
let json = JSON(value)
let secondReply = json["url"].stringValue
print(secondReply)
case .failure(let error):
print(error)
}
}
case .failure(let error):
print(error)
}
}
}
}
我的问题是为什么响应会有所不同?我该如何解决这个问题? 我的猜测是,也许请求需要参数?
有什么想法吗?
最佳答案
对于任何有兴趣使用流 API 的人来说,我没有获得 url 值的原因是因为视频需要时间来处理。当百分比为 100 时,将会有一个 url 值。
关于json - 在浏览器和 Xcode 控制台中获取不同的 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44769016/