com.intellectualcrafters.json

## Class HTTP

- java.lang.Object
- - com.intellectualcrafters.json.HTTP

-     public class HTTP
      extends java.lang.Object

  Convert an HTTP header to a JSONObject and back.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `CRLF` Carriage return/line feed.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HTTP()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static JSONObject` | `toJSONObject(java.lang.String string)` Convert an HTTP header string into a JSONObject.
    `static java.lang.String` | `toString(JSONObject jo)` Convert a JSONObject into an HTTP header.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### CRLF

          public static final java.lang.String CRLF

      Carriage return/line feed.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### HTTP

          public HTTP()

  - ### Method Detail

    - #### toJSONObject

          public static JSONObject toJSONObject(java.lang.String string)
                                         throws JSONException

      Convert an HTTP header string into a JSONObject. It can be a request header or a response header. A request header will contain

           {
              Method: "POST" (for example),
              "Request-URI": "/" (for example),
              "HTTP-Version": "HTTP/1.1" (for example)
           }

      A response header will contain

           {
              "HTTP-Version": "HTTP/1.1" (for example),
              "Status-Code": "200" (for example),
              "Reason-Phrase": "OK" (for example)
           }

      In addition, the other parameters in the header will be captured, using the HTTP field names as JSON names, so that

              Date: Sun, 26 May 2002 18:06:04 GMT
              Cookie: Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s
              Cache-Control: no-cache

      become

           {...
              Date: "Sun, 26 May 2002 18:06:04 GMT",
              Cookie: "Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s",
              "Cache-Control": "no-cache",
           ...}

      It does no further checking or conversion. It does not parse dates. It does not do '%' transforms on URLs.
      Parameters:
        `string` - An HTTP header string.
      Returns:
        A JSONObject containing the elements and attributes of the XML string.
      Throws:
        `JSONException`

    - #### toString

          public static java.lang.String toString(JSONObject jo)
                                           throws JSONException

      Convert a JSONObject into an HTTP header. A request header must contain

           {
              Method: "POST" (for example),
              "Request-URI": "/" (for example),
              "HTTP-Version": "HTTP/1.1" (for example)
           }

      A response header must contain

           {
              "HTTP-Version": "HTTP/1.1" (for example),
              "Status-Code": "200" (for example),
              "Reason-Phrase": "OK" (for example)
           }

      Any other members of the JSONObject will be output as HTTP fields. The result will end with two CRLF pairs.
      Parameters:
        `jo` - A JSONObject
      Returns:
        An HTTP header string.
      Throws:
        `JSONException` - if the object does not contain enough information.