Example usage for org.json HTTPTokener nextToken

List of usage examples for org.json HTTPTokener nextToken

Introduction

In this page you can find the example usage for org.json HTTPTokener nextToken.

Prototype

public String nextToken() throws JSONException 

Source Link

Document

Get the next token or string.

Usage

From source file:org.official.json.HTTP.java

/**
 * Convert an HTTP header string into a JSONObject. It can be a request
 * header or a response header. A request header will contain
 * <pre>{//  www  .  ja  va  2s  .c om
 *    Method: "POST" (for example),
 *    "Request-URI": "/" (for example),
 *    "HTTP-Version": "HTTP/1.1" (for example)
 * }</pre>
 * A response header will contain
 * <pre>{
 *    "HTTP-Version": "HTTP/1.1" (for example),
 *    "Status-Code": "200" (for example),
 *    "Reason-Phrase": "OK" (for example)
 * }</pre>
 * In addition, the other parameters in the header will be captured, using
 * the HTTP field names as JSON names, so that <pre>
 *    Date: Sun, 26 May 2002 18:06:04 GMT
 *    Cookie: Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s
 *    Cache-Control: no-cache</pre>
 * become
 * <pre>{...
 *    Date: "Sun, 26 May 2002 18:06:04 GMT",
 *    Cookie: "Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s",
 *    "Cache-Control": "no-cache",
 * ...}</pre>
 * It does no further checking or conversion. It does not parse dates.
 * It does not do '%' transforms on URLs.
 * @param string An HTTP header string.
 * @return A JSONObject containing the elements and attributes
 * of the XML string.
 * @throws JSONException
 */
public static JSONObject toJSONObject(String string) throws JSONException {
    JSONObject jo = new JSONObject();
    HTTPTokener x = new HTTPTokener(string);
    String token;

    token = x.nextToken();
    if (token.toUpperCase().startsWith("HTTP")) {

        // Response

        jo.put("HTTP-Version", token);
        jo.put("Status-Code", x.nextToken());
        jo.put("Reason-Phrase", x.nextTo('\0'));
        x.next();

    } else {

        // Request

        jo.put("Method", token);
        jo.put("Request-URI", x.nextToken());
        jo.put("HTTP-Version", x.nextToken());
    }

    // Fields

    while (x.more()) {
        String name = x.nextTo(':');
        x.next(':');
        jo.put(name, x.nextTo('\0'));
        x.next();
    }
    return jo;
}