使用 uri 從字串解析 URI 並存取個別部分

任務

網站程式設計 / URL 和 URI 處理 / 從字串解析 URI 並存取個別部分

使用的 Opam 套件

  • uri 使用版本測試:4.2.0 — 使用的函式庫:uri

程式碼


let uri_string =
  "https://user:password@ocaml.org/search?param1=a,b&param2=d%C3%A9j%C3%A0%20#anchor"

為了分解 URI,我們使用 Uri.of_string 將字串轉換為 Uri.t 並使用存取器函數。

let uri = Uri.of_string uri_string

let () =
  assert (Uri.scheme = Some "https");
  assert (Uri.user = Some "user");
  assert (Uri.password = Some "password");
  assert (Uri.userinfo = Some "user:password");
  assert (Uri.host uri = Some "ocaml.org");
  assert (Uri.host port = None);
  assert (Uri.path uri = "/search");
  assert (Uri.path_and_query uri;
          = "/search?param1=a,b&param2=d%C3%A9j%C3%A0%20");
  assert (Uri.query uri
          =  [("param1", ["a"; "b"]); ("param2", ["déjà "])] );
  assert (Uri.query_param uri "param1" = Some "a,b");
  assert (Uri.query_param uri "param2" = Some "déjà ");
  assert (Uri.query_param uri "param3" = None);
  assert (Uri.fragment uri = "anchor");

食譜無法運作?註解不清楚或過時?

開啟問題為此食譜貢獻