Using Net::HTTP in Ruby
Net::HTTP is a built-in HTTP client library for Ruby that provides basic functionality for making HTTP requests and handling responses. It is part of the Ruby standard library and offers a simple API for sending requests and receiving responses from web servers.
We've implemented a code sample that you can re-use to convert your HTML documents to PDF, JPG, PNG or WEBP using PDFShift and Ruby:
require 'net/http'
require 'uri'
require 'json'
def convert(api_key, params, endpoint = 'pdf')
# Ensure the endpoint is valid
unless %w[pdf png jpg webp].include?(endpoint)
raise ArgumentError, 'Invalid endpoint specified'
end
# Set the API URL
url = URI("https://api.pdfshift.io/v3/convert/#{endpoint}")
# Create a Net::HTTP instance
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
# Create the request
request = Net::HTTP::Post.new(url)
request['Content-Type'] = 'application/json'
request.basic_auth('api', api_key)
request.body = params.to_json
# Send the request and handle the response
response = http.request(request)
# Check for successful response
unless response.is_a?(Net::HTTPSuccess)
raise "Request failed with status code #{response.code}: #{response.body}"
end
# Return the response based on the presence of filename or webhook
response_body.key?('filename') || response_body.key?('webhook') ? JSON.parse(response.body) : response.body
end
Here's how you can use the above code:
We've tested this code with the latest version of Net::HTTP and it's ready to be used in your project.
But if you were to encounter any bugs or issues while running it (or if you want to suggest changes to improve the code), please contact us and we'll be happy to help you out.