cocoa-rest-client
cocoa-rest-client copied to clipboard
A free, native Apple macOS app for testing HTTP/REST endpoints
About
CocoaRestClient is a Mac OS X app for testing HTTP/Restful endpoints.
I love curl, but sometimes I need my output XML or JSON pretty printed. I want to be able to save frequent PUT and POST bodies for later and copy and paste from responses easily. Think of this as curl with a light UI.
The goal of this project is to build a lightweight native Cocoa app for testing and debugging HTTP Restful services. This project was greatly inspired by the Java rest-client (https://code.google.com/archive/p/rest-client).
Official project website: http://mmattozzi.github.io/cocoa-rest-client/
Download
If you're not looking to compile from source and only want to use this tool, latest releases are here:
You can also install it through homebrew as a cask:
# install cask if necessary
brew tap caskroom/cask
# install CocoaRestClient
brew install --cask cocoarestclient
Features
- Make GET, PUT, POST, DELETE, HEAD calls
- Set request body to arbitrary content
- Set request headers
- Edit URL parameters in an easy to read table
- Set HTTP basic & digest auth
- Auto-format (pretty print) XML, JSON, and MsgPack responses
- Some cool Ace Editor themes for syntax highlighting
- Display response headers
- Quick save requests in a handy sidebar using folder organization
- Upload files and form data via multipart/form-data
- Enter POST/PUT input as raw input or key/value pairs
- Reports response latency
- Command-R reloads last request
- Lightweight: Low real memory usage and < 6mb DMG
- SSL Support (including untrusted certificates)
- Optionally follows HTTP redirects
- Import and export requests
- New in version 1.4: Uses native macOS tabs and windows.
- New in version 1.4.3: Generate a unified diff between two response body tabs
- Supports native MacOS dark mode
- Mac M1/arm and intel processor support
Screenshots

Pretty print JSON content. Set and save HTTP headers.

Pretty print XML content. Quick save of request URLs, body, and headers in one convenient drawer.

Set HTTP Basic or Digest Auth. Displays HTTP response headers.

Upload files using HTTP multipart requests. HTTP form encoding also supported.

Unified diff tool for comparing response bodies.
Source and Contributions
-
Contributions are always welcome! Please fork and create a pull request.
-
Source uses Cocoapods for dependencies, to get started, install CocoaPods and in the main project directory run:
pod install
- Note that you must have a github account and a public key registered with github so that CocoaPods can pull down a github-hosted dependency.
Credits
- Uses a very lightly modified fork of SBJson (https://github.com/SBJson/SBJson) for pretty printing JSON
- Much guidance from Adrian Kosmaczewski blog (http://kosmaczewski.net/playing-with-http-libraries/)
- Sparkle automatic update framework (https://github.com/sparkle-project/Sparkle)
- ACEView syntax highlighting (https://github.com/ACENative/ACEView)
- Base64 encoding uses Matt Gallagher's NSData+Base64 code (http://www.cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html)
- Code & testing contributions: Adam Venturella, Sergey Klimov, Cory Alder, Tito Ciuro, Eric Broska, Nicholas Robinson, Diego Massanti, Robert Horvath
License
See LICENSE.txt