🎉 Makes http fun again!
Go to file
John Nunemaker e731057ebc Update version 2022-12-30 16:05:13 -05:00
.github/workflows Adds Ruby 3.2 to the CI matrix. Updates checkout action version. 2022-12-29 16:27:54 -05:00
bin Handle json parsing errors and fall back to inspect for CLI 2017-04-21 10:09:43 -04:00
docs Add docs on JSON post, put and patch requests 2022-10-08 00:14:12 +01:00
examples Add an example about International domain names (#669) 2021-06-04 09:01:46 +03:00
features Fix #713 2020-10-30 22:04:48 -06:00
lib Update version 2022-12-30 16:05:13 -05:00
script Added script/release. 2013-10-10 11:34:05 -04:00
spec escape filename in the multipart/form-data Content-Disposition header 2022-11-27 14:04:19 +09:00
website Adds editorconfig 2018-10-09 11:16:46 +05:30
.editorconfig Adds editorconfig 2018-10-09 11:16:46 +05:30
.gitignore Ignore asdf tool-versions 2022-12-30 16:04:43 -05:00
.rubocop.yml Adds rubocop configuration 2015-04-24 07:23:24 +02:00
.rubocop_todo.yml Rename Lint/HandleExceptions to Lint/SuppressedException 2020-04-17 12:53:44 +03:00
CONTRIBUTING.md Create CONTRIBUTING.md 2015-05-30 07:52:30 -04:00
Changelog.md Add security notice in changelog 2022-12-30 16:04:52 -05:00
Gemfile Add json and rexml for ruby 3.1 2022-11-03 17:04:13 -04:00
Guardfile Fix guardfile 2022-11-03 17:04:03 -04:00
MIT-LICENSE Removing .txt from files (it has always annoyed me). Boo Windows! 2008-12-05 17:11:58 -05:00
README.md Update CI status badge 2022-12-22 23:26:14 +09:00
Rakefile Bump RSpec from 1.3 to 3.1 2014-12-06 16:10:24 -08:00
cucumber.yml Progress format for cucumber. 2012-04-16 00:21:27 -04:00
httparty.gemspec Replace `mime-types` with `mini_mime` for content type lookup 2022-11-10 11:22:19 -03:00

README.md

httparty

CI

Makes http fun again! Ain't no party like a httparty, because a httparty don't stop.

Install

gem install httparty

Requirements

  • Ruby 2.3.0 or higher
  • multi_xml
  • You like to party!

Examples

# Use the class methods to get down to business quickly
response = HTTParty.get('http://api.stackexchange.com/2.2/questions?site=stackoverflow')

puts response.body, response.code, response.message, response.headers.inspect

# Or wrap things up in your own class
class StackExchange
  include HTTParty
  base_uri 'api.stackexchange.com'

  def initialize(service, page)
    @options = { query: { site: service, page: page } }
  end

  def questions
    self.class.get("/2.2/questions", @options)
  end

  def users
    self.class.get("/2.2/users", @options)
  end
end

stack_exchange = StackExchange.new("stackoverflow", 1)
puts stack_exchange.questions
puts stack_exchange.users

See the examples directory for even more goodies.

Command Line Interface

httparty also includes the executable httparty which can be used to query web services and examine the resulting output. By default it will output the response as a pretty-printed Ruby object (useful for grokking the structure of output). This can also be overridden to output formatted XML or JSON. Execute httparty --help for all the options. Below is an example of how easy it is.

httparty "https://api.stackexchange.com/2.2/questions?site=stackoverflow"

Help and Docs

Contributing

  • Fork the project.
  • Run bundle
  • Run bundle exec rake
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Run bundle exec rake (No, REALLY :))
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself in another branch so I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.