123456789_123456789_123456789_123456789_123456789_

Class: Sketchup::Http::Request

Relationships
Inherits: Object

Overview

Request objects allows you to send HTTP request to HTTP servers.

Version:

  • SketchUp 2017

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(url, method = Sketchup::Http::GET) ⇒ Request

Note:

If no reference is kept to the Request, it can be garbage collected, making the download silently fail. This is especially noticeable for larger downloads that takes longer time.

The default port is 80, to use a different port define it in the URL when creating a new Request.

The method parameter accepts any custom HTTP method or one of the following:

  • Sketchup::Http::GET

  • Sketchup::Http::POST

  • Sketchup::Http::PUT

  • Sketchup::Http::DELETE

  • Sketchup::Http::HEAD

  • Sketchup::Http::OPTIONS

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080", Sketchup::Http::GET)

@request.start do |request, response|
  puts "body: #{response.body}"
end

Parameters:

  • url (String)
  • method (String) (defaults to: Sketchup::Http::GET)

Version:

  • SketchUp 2017

Instance Attribute Details

#bodyString (rw)

Gets the HTTP body that is going to be used when sending the request.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")

@request.start do |request, response|
  puts "body: #{request.body}"
end

Version:

  • SketchUp 2017

#body=(body) ⇒ String (rw)

Sets the HTTP body that is going to be used when sending the request.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")
@request.body = "Hello World"

@request.start do |request, response|
  puts "body: #{request.body}"
end

Parameters:

  • body (String)

    A String containing the body.

Version:

  • SketchUp 2017

#headersHash (rw)

Returns the HTTP headers that are going to be used when sending the request.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")
@request.headers = { :key1 => "value1", :key2 => "value2" }

@request.headers.each do |key, value|
  puts "#{key}: #{value}"
end

Version:

  • SketchUp 2017

#headers=(headers) ⇒ Boolean (rw)

Sets the HTTP headers that are going to be used when sending the request.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")
@request.headers = { :key1 => "value1", :key2 => "value2" }

@request.headers.each do |key, value|
  puts "#{key}: #{value}"
end

Parameters:

  • headers (Hash)

    A key/value pair hash.

Version:

  • SketchUp 2017

#methodString (rw)

Returns the HTTP method that is going to be used when sending the request.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")

@request.start do |request, response|
  puts "request.method: #{request.method}"
end

Version:

  • SketchUp 2017

#method=(method) ⇒ Boolean (rw)

Sets the HTTP method that is going to be used when sending the request. The value can be any custom HTTP method or one of the following:

  • Sketchup::Http::GET

  • Sketchup::Http::POST

  • Sketchup::Http::PUT

  • Sketchup::Http::DELETE

  • Sketchup::Http::HEAD

  • Sketchup::Http::OPTIONS

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")
@request.method = Sketchup::Http::POST

@request.start do |request, response|
  puts "request.method: #{request.method}"
end

Parameters:

  • method (String)

    A string containing the HTTP method name.

Version:

  • SketchUp 2017

Instance Method Details

#canceltrue

Cancels the request.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")
@request.start do |request, response|
  puts "body: #{response.body}"
end

@request.cancel

Version:

  • SketchUp 2017

#set_download_progress_callback {|current, total| ... } ⇒ Boolean

Note:

total is -1 if the server doesn’t specify a file size in the response header.

Adds a download progress callback block that will get called everytime we have received data from the server until the download finishes.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")

@request.set_download_progress_callback do |current, total|
  if total == -1
    puts "#{current}B"
  else
    percentage = (current.to_f / total * 100).round
    puts "#{current}B / #{total}B (#{percentage}%)"
  end
end

@request.start

Yields:

  • A block to be invoked everytime data is downloaded from the server.

Yield Parameters:

  • current (Integer)

    Current bytes transferred.

  • total (Integer)

    Total bytes to transfer.

Version:

  • SketchUp 2017

#set_upload_progress_callback {|current, total| ... } ⇒ Boolean

Adds a upload progress callback block that will get called everytime we have uploaded data to the server until the upload finishes.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")

@request.set_upload_progress_callback do |current, total|
  puts "upload current: #{current}"
  puts "upload total: #{total}"
end

request.start

Yields:

  • A block to be invoked everytime data is sent to the server.

Yield Parameters:

  • current (Integer)

    Current bytes transferred.

  • total (Integer)

    Total bytes to transfer.

Version:

  • SketchUp 2017

#start {|request, response| ... } ⇒ Boolean

Starts the request with optionally a response callback block.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")

@request.start do |request, response|
  puts "body: #{response.body}"
end

Yield Parameters:

Version:

  • SketchUp 2017

#statusInteger

Returns the internal status code. It can be one of the following:

  • Sketchup::Http::STATUS_UNKNOWN

  • Sketchup::Http::STATUS_SUCCESS

  • Sketchup::Http::STATUS_PENDING

  • Sketchup::Http::STATUS_CANCELED

  • Sketchup::Http::STATUS_FAILED

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")
@request.start
puts "response.status: #{@request.status}"

Version:

  • SketchUp 2017

#urlString

Returns a copy of the Request’s URL.

Examples:

@request = Sketchup::Http::Request.new("http://localhost:8080")

@request.start do |request, response|
  puts "url: #{request.url}"
end

Version:

  • SketchUp 2017