如何在HtmlAgilityPack中将引用者设置为HtmlWeb

时间:2017-09-09 11:08:30

标签: c# html-agility-pack

我想分配动态(意味着引荐来源根据请求URL进行更改。

我找不到$table->integer('parent')->nullable(); Referrer属性。我只能看到Headers,我可以添加一个处理程序。有没有其他方法可以在不使用全局变量的情况下将引用者传递给处理程序?

PreRequest

1 个答案:

答案 0 :(得分:1)

  

有没有其他方法可以在不使用全局变量的情况下将引用者传递给处理程序?

您可以使用捕获的变量。例如,请参阅此链接"Understanding Variable Capturing in C#"或此Closures and Captured Variable C#

现在你可以做到

func attraperJSON() -> String? {

    //Use URL instead of NSURL
    guard let krakenURL = URL(string: "https://api.kraken.com/0/public/Ticker?pair=XXBTZEUR") else {

        print("Probleme adresse")
        return nil
    }

    guard let tickerData = NSData(contentsOf: krakenURL) else {

        print("Problème ticker data")
        return nil
    }
    do {
        //Use "as?" to convert to desired type
        let json = try JSONSerialization.jsonObject(with: tickerData as Data, options: []) as? [String : Any]

        //Use "as?" to convert to desired type
        guard let tableauUn = json?["result"] as? [String : Any],
            let tableauDeux = tableauUn["XXBTZEUR"] as? [String : String] else {
                return nil
        }

        let prix = tableauDeux["o"]
        return prix

    } catch {
        return nil
    }
}

一些注意事项:

  

什么是关闭?

     

闭包是可以存储在变量中的函数,作为参数传递并引用定义它们时可见的变量。

     

捕获变量

     

闭包引用的外部变量称为捕获变量