แปลง curl เป็น Elixir

แปลงคำสั่ง curl เป็นโค้ด Elixir โดยใช้ HTTPoison curl2code ทำงานในเบราว์เซอร์ของคุณทั้งหมดผ่าน WebAssembly — ข้อมูลของคุณจะยังคงเป็นส่วนตัว สำหรับ Ruby ลองใช้ ตัวแปลง curl เป็น Ruby ของเรา สำหรับ Go ดูที่ curl เป็น Go ด้านล่างนี้คือตัวอย่าง Elixir ที่พร้อมใช้งาน

วิธีคัดลอก curl จากเบราว์เซอร์ของคุณ

  1. 1

    เปิด DevTools

    กด F12 หรือ Ctrl+Shift+I เพื่อเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์

  2. 2

    ไปที่แท็บ Network

    คลิกแท็บ Network และดำเนินการที่ทริกเกอร์คำขอ HTTP

  3. 3

    คัดลอกเป็น cURL

    คลิกขวาที่คำขอ → CopyCopy as cURL จากนั้นนำมาวางด้านบน

คำถามที่พบบ่อย (FAQ)

Elixir HTTPoison คืออะไร?

HTTPoison เป็น HTTP client ที่ได้รับความนิยมมากที่สุดสำหรับ Elixir สร้างขึ้นบนไลบรารี hackney ของ Erlang มี API ที่สะอาดตาและเป็นแบบ functional สำหรับ GET, POST, streaming และ async request เพิ่มลงใน deps ของ mix.exs: {:httpoison, "~> 2.0"} โดย curl2code ใช้ HTTPoison เป็นค่าเริ่มต้นสำหรับการแปลงเป็น Elixir

HTTPoison vs Req vs Tesla vs Finch — ควรใช้อันไหน?

HTTPoison มีความเสถียรและถูกใช้งานมากที่สุด Req เป็นตัวใหม่ที่มาพร้อมฟีเจอร์ครบครันทั้งการลองใหม่และ auth Tesla มีสถาปัตยกรรมแบบ middleware เหมือน Faraday Finch เป็นระดับล่างและเน้นประสิทธิภาพสูงสำหรับงานโปรดักชัน สำหรับแนวทางแบบ functional ที่คล้ายกัน ดูได้ที่ curl เป็น Clojure หรือ curl เป็น Ruby

จะจัดการการยืนยันตัวตนใน Elixir ได้อย่างไร?

ส่ง headers เป็นรายการของ string tuples: HTTPoison.get(url, [{"Authorization", "Bearer token"}]) สำหรับ Basic auth ให้เข้ารหัส user:pass ด้วย Base.encode64/1 และเติม "Basic " ไว้ข้างหน้าค่า ใช้ pattern match กับ response สำหรับ {:ok, response} หรือ {:error, reason} curl2code จะแปลงแฟล็ก -H และ -u เป็น Elixir แบบ idiomatic

จะส่งข้อมูลแบบ multipart form data ใน Elixir ได้อย่างไร?

ใช้ {:multipart, parts} เป็น body: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}) สำหรับฟิลด์ฟอร์มทั่วไป ให้เพิ่ม tuples {"key", "value"} โดย curl2code จะจัดการแฟล็ก -F สำหรับ HTTPoison multipart

จะจัดการข้อผิดพลาดใน Elixir HTTP request ได้อย่างไร?

HTTPoison จะคืนค่าเป็น tagged tuples: {:ok, response} หรือ {:error, reason} ใช้ pattern match ด้วย case หรือ with: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end นี่คือรูปแบบที่เป็นเอกลักษณ์ของ Elixir — การจัดการข้อผิดพลาดที่ชัดเจนและครอบคลุมโดยไม่ใช้ exception

จะทำ HTTP request พร้อมกันหลายรายการใน Elixir ได้อย่างไร?

ใช้ Task.async/1 และ Task.await/1: tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) แล้วตามด้วย results = tasks |> Enum.map(&Task.await/1) โดย BEAM VM ของ Elixir สามารถจัดการกระบวนการที่ทำงานพร้อมกันนับพันได้อย่างมีประสิทธิภาพ สำหรับ concurrency ที่คล้ายกัน ดูได้ที่ curl เป็น Go

จะตั้งค่า timeout ใน Elixir ได้อย่างไร?

ส่งตัวเลือกไปที่ HTTPoison: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]) โดย timeout คือ timeout การเชื่อมต่อ และ recv_timeout คือ timeout การรอรับ response (ทั้งคู่เป็นมิลลิวินาที) สำหรับการลองใหม่ ให้ครอบในฟังก์ชัน recursive หรือใช้ฟีเจอร์ retry ในตัวของไลบรารี Req

จะใช้ proxy ใน Elixir ได้อย่างไร?

ส่งตัวเลือก proxy ไปที่ HTTPoison: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]) สำหรับ proxy ที่ต้องยืนยันตัวตน ให้ใช้ proxy_auth: {"user", "pass"} นอกจากนี้ HTTPoison ยังรองรับ SOCKS5 proxy ผ่านไลบรารี hackney พื้นฐาน โดย curl2code จะแปลงแฟล็ก -x เป็นการตั้งค่า proxy ของ Elixir

วิธีส่งคำขอ POST พร้อม JSON body ใน Elixir?

แปลงคำสั่ง curl POST เช่น curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL เป็น Elixir โดยใช้ curl2code โค้ดที่สร้างขึ้นจะใช้ HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]) โดย curl2code จะตรวจจับแฟล็ก -d/--data ที่มีเนื้อหา JSON โดยอัตโนมัติ และตั้งค่าส่วนหัว Content-Type ที่เหมาะสมในโค้ด HTTPoison

วิธีเพิ่มการยืนยันตัวตนด้วย Bearer token ใน Elixir?

ส่ง curl -H "Authorization: Bearer YOUR_TOKEN" URL ไปยัง curl2code และเครื่องมือจะสร้างโค้ด HTTPoison พร้อมส่วนหัวการยืนยันตัวตน: [{'Authorization', 'Bearer YOUR_TOKEN'}] โดย curl2code จะตรวจจับ Bearer tokens จากทั้งแฟล็ก -H "Authorization: Bearer ..." และ --oauth2-bearer สำหรับ Basic auth ให้ใช้ -u user:pass

วิธีตั้งค่าส่วนหัว Content-Type ใน Elixir?

curl2code จะแปลง curl -H "Content-Type: application/json" URL เป็นโค้ด HTTPoison พร้อมส่วนหัวที่ถูกต้อง: [{'Content-Type', 'application/json'}] สำหรับข้อมูล -d นั้น curl จะกำหนดค่าเริ่มต้นเป็น application/x-www-form-urlencoded ส่วนการอัปโหลดฟอร์ม -F จะใช้ multipart/form-data โดย curl2code จะจับคู่แต่ละรายการเข้ากับ HTTPoison API ที่ถูกต้อง

ลิงก์ที่มีประโยชน์

คู่มือ curl

แปลง curl เป็นภาษาอื่น