A JSON protocol client needs a mid-level capability to build HTTP request messages, send the requests over the network, and manage server responses. Many languages have libraries to abstract TCP/IP layers while also providing access to URLs, headers, and bodies.

For example, some popular libraries include:

Python 3 – urllib.request module

Java – java.net.HttpUrlConnection or for Java 11 and later, java.net.HTTP module

Go – net/http package

Rust – http module

Perl – LWP module

Swift – URL, URLRequest, URLSession, and URLSessonDataTask interfaces

C++ – libcurl or curlpp

Command line and graphical tools for passing HTTP messages include:
  • Curl or wget
  • Postman
  • Insomnia
  • Hoppscotch

To use the JSON protocol, you build URLs that embed the names of managed objects, properties, and methods. You build request bodies that specify the parameters for method calls. You read response bodies and response headers. You include a session identifier in your request headers.