แปลง curl เป็น R
curl2code แปลงคำสั่ง curl เป็นโค้ด R โดยใช้แพ็กเกจ httr การแปลงทำงานในเบราว์เซอร์ของคุณผ่าน WebAssembly เพื่อความเป็นส่วนตัวที่สมบูรณ์ สำหรับ Python ตรวจสอบ ตัวแปลง curl เป็น Python ของเรา สำหรับ Julia ดูที่ curl เป็น Julia ด้านล่างนี้คือตัวอย่าง R ที่ใช้งานได้จริง
วิธีคัดลอก curl จากเบราว์เซอร์ของคุณ
- 1
เปิด DevTools
กด F12 หรือ Ctrl+Shift+I เพื่อเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์
- 2
ไปที่แท็บ Network
คลิกแท็บ Network และดำเนินการที่ทริกเกอร์คำขอ HTTP
- 3
คัดลอกเป็น cURL
คลิกขวาที่คำขอ → Copy → Copy as cURL จากนั้นนำมาวางด้านบน
คำถามที่พบบ่อย (FAQ)
R httr คืออะไร?
httr เป็นแพ็กเกจ HTTP client ที่ได้รับความนิยมมากที่สุดสำหรับ R ออกแบบมาเพื่อโต้ตอบกับ web API โดยเฉพาะ มีฟังก์ชันอย่าง GET(), POST(), PUT() พร้อมการจัดการ content type อัตโนมัติและการรองรับ OAuth ติดตั้งได้ด้วย install.packages("httr") นอกจากนี้ curl2code ยังรองรับ httr2 ซึ่งเป็นรุ่นถัดมาด้วย
httr vs httr2 vs curl package — ควรใช้ตัวไหน?
httr มีความเสถียรและใช้งานกันอย่างแพร่หลาย บทเรียน R ส่วนใหญ่จะใช้ตัวนี้ httr2 เป็นตัวแทนรุ่นใหม่ที่ใช้ไวยากรณ์แบบ piped มีระบบ retry และ rate limiting ในตัว ส่วนแพ็กเกจ curl เป็นตัวหุ้ม libcurl ระดับต่ำ ควรใช้ httr2 สำหรับโปรเจกต์ใหม่ และใช้ httr เพื่อความเข้ากันได้ สำหรับ workflow ด้านวิทยาศาสตร์ข้อมูลที่คล้ายกัน ดูได้ที่ curl to Python หรือ curl to Julia
จะจัดการการยืนยันตัวตนใน R ได้อย่างไร?
สำหรับ Bearer: GET(url, add_headers(Authorization = paste("Bearer", token))) สำหรับ Basic auth: GET(url, authenticate(user, pass)) นอกจากนี้ httr ยังรองรับ OAuth 1.0 และ 2.0 ผ่าน oauth1.0_token() และ oauth2.0_token() curl2code จะแปลงแฟล็ก -u และ header เป็นไวยากรณ์ R
จะส่ง multipart form data ใน R ได้อย่างไร?
ใช้ POST(url, body = list(file = upload_file("doc.pdf"), desc = "My file"), encode = "multipart") โดย httr จะจัดการ boundaries และ Content-Type ให้โดยอัตโนมัติ สำหรับ JSON body ให้ใช้ encode = "json" curl2code จะแปลงแฟล็ก -F เป็นไวยากรณ์ multipart ของ httr
จะจัดการข้อผิดพลาด HTTP ใน R ได้อย่างไร?
ใช้ stop_for_status(response) เพื่อโยน error เมื่อไม่ใช่ 2xx, warn_for_status() สำหรับคำเตือน หรือ message_for_status() สำหรับข้อความ ตรวจสอบรหัสสถานะด้วย status_code(response) และหุ้มด้วย tryCatch() สำหรับการจัดการข้อผิดพลาดในโปรแกรม ส่วน httr2 จะใช้ req_error() เพื่อกำหนดพฤติกรรมเมื่อเกิดข้อผิดพลาด
จะ parse JSON responses ใน R ได้อย่างไร?
ใช้ content(response, "parsed") สำหรับการ parse JSON เป็น list โดยอัตโนมัติ หรือใช้ content(response, "text") ร่วมกับ jsonlite::fromJSON() เพื่อการควบคุมที่มากขึ้น jsonlite จะแปลง JSON เป็น R data frames, lists และ vectors สำหรับ pipeline วิเคราะห์ข้อมูล สามารถ pipe เข้าสู่ tibble หรือ dplyr ได้โดยตรง
จะตั้งค่า timeouts ใน R ได้อย่างไร?
ใช้ GET(url, timeout(30)) สำหรับ timeout 30 วินาที ส่วน httr2 ใช้ req_timeout(req, 30) สำหรับการลองใหม่ใน httr2: req_retry(req, max_tries = 3, backoff = ~ 2) httr ไม่มีระบบ retry ในตัว ต้องใช้ลูปร่วมกับ tryCatch() ค่าเหล่านี้จะตรงกับตัวเลือก --max-time ของ curl
จะใช้ proxy ใน R ได้อย่างไร?
ใช้ GET(url, use_proxy("proxy", 8080, username, password)) โดย httr จะหุ้มตัวเลือก proxy ของ libcurl ไว้ และยังรองรับ environment variables http_proxy และ https_proxy ด้วย สำหรับ SOCKS proxies ให้ระบุ scheme: use_proxy("socks5://proxy:1080") curl2code จะแปลงแฟล็ก -x เป็นการตั้งค่า proxy ของ R
วิธีส่งคำขอ POST พร้อม JSON body ใน R?
แปลงคำสั่ง curl POST เช่น curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL เป็น R โดยใช้ curl2code โค้ดที่สร้างขึ้นจะใช้ POST(url, body = data, encode = 'json') โดย curl2code จะตรวจจับแฟล็ก -d/--data ที่มีเนื้อหา JSON โดยอัตโนมัติ และตั้งค่าส่วนหัว Content-Type ที่เหมาะสมในโค้ด httr
วิธีเพิ่มการยืนยันตัวตนด้วย Bearer token ใน R?
ส่ง curl -H "Authorization: Bearer YOUR_TOKEN" URL ไปยัง curl2code และเครื่องมือจะสร้างโค้ด httr พร้อมส่วนหัวการยืนยันตัวตน: add_headers(Authorization = 'Bearer YOUR_TOKEN') โดย curl2code จะตรวจจับ Bearer tokens จากทั้งแฟล็ก -H "Authorization: Bearer ..." และ --oauth2-bearer สำหรับ Basic auth ให้ใช้ -u user:pass
วิธีตั้งค่าส่วนหัว Content-Type ใน R?
curl2code จะแปลง curl -H "Content-Type: application/json" URL เป็นโค้ด httr พร้อมส่วนหัวที่ถูกต้อง: content_type_json() สำหรับข้อมูล -d นั้น curl จะกำหนดค่าเริ่มต้นเป็น application/x-www-form-urlencoded ส่วนการอัปโหลดฟอร์ม -F จะใช้ multipart/form-data โดย curl2code จะจับคู่แต่ละรายการเข้ากับ httr API ที่ถูกต้อง