Elixir:
下载网页

How to: (如何操作:)

# 首先添加HTTPoison到mix.exs
defp deps do
  [{:httpoison, "~> 1.8"}]
end

# 然后运行 mix deps.get 来安装HTTPoison

# 现在使用HTTPoison获取网页内容
defmodule WebPageDownloader do
  def fetch(url) do
    case HTTPoison.get(url) do
      {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
        {:ok, body}
      {:ok, %HTTPoison.Response{status_code: status_code}} ->
        {:error, "Error with status code: #{status_code}"}
      {:error, %HTTPoison.Error{reason: reason}} ->
        {:error, "Error due to: #{reason}"}
    end
  end
end

# 演示如何调用
WebPageDownloader.fetch("http://example.com")

# 假定输出示例:
{:ok, "<html>...</html>"}

Deep Dive (深入探索)

早期下载网页主要用于搜索引擎和数据挖掘。Elixir通过库如 HTTPoison 和 Tesla 简化了网页下载,背后使用了 Erlang 的强大并发特性。相对于其它语言,Elixir 在处理成千上万并发连接时更为高效。虽然有其他方式(如使用 :httpc 模块),HTTPoison 在社区中更受欢迎,因为它提供了一套丰富而便捷的 HTTP 客户端 API。

See Also (另请参阅)