Clojure 如何使用GoogleRefine从URL获取HTTP状态码?

Clojure 如何使用GoogleRefine从URL获取HTTP状态码?,clojure,jython,http-status-codes,google-refine,Clojure,Jython,Http Status Codes,Google Refine,我有一个包含一长串URL的文件。我想使用GoogleRefine获取每个URL打开时显示的HTTP状态代码。URL存储在1列中,每个单元格1个URL。HTTP状态代码应存储在新列中。Google Refine中有3种可用语言:Clojure、Jython和GREL。我对编程很陌生。在Clojure中,要获取响应代码,您可以建立连接,然后检查响应代码。下面是一个只使用内置java.net类的示例,这样您就不必包含任何库(我不知道使用这个程序有多容易) clojure应用程序使用http库(如htt

我有一个包含一长串URL的文件。我想使用GoogleRefine获取每个URL打开时显示的HTTP状态代码。URL存储在1列中,每个单元格1个URL。HTTP状态代码应存储在新列中。Google Refine中有3种可用语言:Clojure、Jython和GREL。我对编程很陌生。

在Clojure中,要获取响应代码,您可以建立连接,然后检查响应代码。下面是一个只使用内置java.net类的示例,这样您就不必包含任何库(我不知道使用这个程序有多容易)

clojure应用程序使用http库(如http kit)来更干净地执行此操作更为正常。因此,如果您可以轻松地包含库,我将采用这种方式并保存几行代码

PS:您可能还希望在完成后关闭连接

hello.core> (let [connection (.openConnection (java.net.URL. "http://google.com/index.html"))
                  response (.getResponseCode connection)]
              (.. connection      ;; yep, java's strange
                  getInputStream  ;; closing the input stream closes it's conneection
                  close)          ;; so most people use http-kit
              response)

对于我们这些熟悉这些语言的人来说,很难在没有更多代码上下文的情况下给出答案,尽管我们没有使用OpenRefine(以前称为GoogleRefine)。获取URL标题的Clojure片段对您有用吗?Arthur,谢谢您的帮助,但是在我的例子中,这个脚本(只有第二个在OpenRefine中工作)没有提供令人满意的结果。它使用http地址。我的URL是https。当我在搜索栏中手动键入地址“http…”时,它会将我重定向到“https…”,然后我可以看到一个网页(应该是响应代码200)。但是,在OpenRefine中将此脚本与“http..”一起使用会显示代码301,与“https…”一起使用会显示一个空框,这意味着一个错误。很抱歉延迟答复,我感谢您的帮助!Oracle对哪些TLS/SSL证书值得信任有一些不同于其他地方(如其他地方)的看法,因此调试TLS连接最好从repl以交互方式完成。通过修改openConnection和friends的参数,几乎总是可以找到答案的。祝你好运!
hello.core> (let [connection (.openConnection (java.net.URL. "http://google.com/index.html"))
                  response (.getResponseCode connection)]
              (.. connection      ;; yep, java's strange
                  getInputStream  ;; closing the input stream closes it's conneection
                  close)          ;; so most people use http-kit
              response)