Chuyển đổi curl sang Lua
curl2code chuyển đổi các lệnh curl thành mã Lua bằng thư viện http. Quá trình chuyển đổi chạy trong trình duyệt của bạn thông qua WebAssembly để đảm bảo quyền riêng tư hoàn toàn. Đối với Python, hãy kiểm tra trình chuyển đổi curl sang Python của chúng tôi. Đối với Ruby, hãy xem curl sang Ruby. Dưới đây là các ví dụ Lua thực tế.
Cách sao chép curl từ trình duyệt của bạn
- 1
Mở DevTools
Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.
- 2
Đi tới tab Network
Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.
- 3
Sao chép dưới dạng cURL
Nhấp chuột phải vào yêu cầu → Sao chép → Copy as cURL. Sau đó dán nó vào bên trên.
Câu hỏi thường gặp
Lua http là gì?
lua-http (hoặc socket.http từ LuaSocket) là cách tiêu chuẩn để thực hiện các yêu cầu HTTP trong Lua. Nó cung cấp các phương thức GET, POST cơ bản và các phương thức yêu cầu tùy chỉnh. Để có nhiều tính năng hơn, lua-resty-http phổ biến trong môi trường OpenResty/Nginx. Cài đặt bằng luarocks install http. curl2code tạo mã bằng mô-đun http.
socket.http so với lua-resty-http so với lua-curl — nên sử dụng cái nào?
socket.http (LuaSocket) là tiêu chuẩn cho Lua nói chung. lua-resty-http dành cho OpenResty/Nginx với I/O không chặn (non-blocking). lua-curl bọc libcurl để hỗ trợ đầy đủ giao thức. Sử dụng socket.http cho các script độc lập, resty-http cho các máy chủ web. Đối với kịch bản tương tự, hãy xem curl sang Python hoặc curl sang Ruby.
Làm thế nào để xử lý xác thực trong Lua?
Thiết lập header Authorization trong bảng headers: headers = { Authorization = "Bearer token" }. Đối với xác thực Basic, hãy mã hóa bằng một thư viện base64: "Basic " .. base64.encode(user .. ":" .. pass). Truyền các header trong bảng tùy chọn yêu cầu. curl2code xử lý các cờ -u và header.
Làm thế nào để gửi dữ liệu form multipart trong Lua?
Xây dựng thân multipart theo cách thủ công với các chuỗi boundary, hoặc sử dụng một thư viện hỗ trợ như multipart-post. Thiết lập header Content-Type với boundary. http.request của LuaSocket chấp nhận một hàm nguồn để streaming các bản tải lên lớn. curl2code chuyển đổi các cờ -F sang cú pháp Lua.
Làm thế nào để xử lý lỗi HTTP trong Lua?
http.request của LuaSocket trả về nhiều giá trị: body, code, headers, status = http.request(url). Kiểm tra code để biết trạng thái HTTP (200, 404, v.v.) hoặc nil khi lỗi mạng. Sử dụng mẫu assert() hoặc if not body then của Lua để kiểm tra lỗi.
Làm thế nào để phân tích JSON trong Lua?
Sử dụng mô-đun cjson (nhanh, dựa trên C): local data = cjson.decode(json_string). Để mã hóa: cjson.encode(table). Trong OpenResty, cjson được cài đặt sẵn. Đối với Lua độc lập, hãy cài đặt bằng luarocks install lua-cjson. Ngoài ra, có thể sử dụng dkjson thuần Lua.
Làm thế nào để thiết lập timeout trong Lua?
Với LuaSocket: thiết lập http.TIMEOUT = 30 trên toàn cầu, hoặc tạo một kết nối tùy chỉnh và gọi :settimeout(30). Trong lua-resty-http, sử dụng httpc:set_timeout(30000) (mili giây). Timeout giúp ngăn các script bị treo vô thời hạn trên các máy chủ không phản hồi.
Làm thế nào để sử dụng proxy trong Lua?
Với LuaSocket, thiết lập trường proxy trong các tùy chọn yêu cầu: http.request{ url = target, proxy = "http://proxy:8080" }. Đối với lua-resty-http, hãy kết nối trực tiếp với proxy và sử dụng phương thức CONNECT để tạo đường hầm HTTPS. curl2code chuyển đổi các cờ -x sang thiết lập proxy Lua phù hợp.
Làm thế nào để gửi một yêu cầu POST với thân JSON trong Lua?
Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL sang Lua bằng cách sử dụng curl2code. Mã được tạo sử dụng http.request(url, json_body, headers). curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã http.
Làm thế nào để thêm xác thực Bearer token trong Lua?
Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã http với header xác thực: headers['Authorization'] = 'Bearer YOUR_TOKEN'. curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..." và --oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.
Làm thế nào để thiết lập header Content-Type trong Lua?
curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã http với header chính xác: headers['Content-Type'] = 'application/json'. Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới http API chính xác.