Package com.orientechnologies.orient.server.network.protocol.http

Source Code of com.orientechnologies.orient.server.network.protocol.http.OHttpUtils

/*
    *
    *  *  Copyright 2014 Orient Technologies LTD (info(at)orientechnologies.com)
    *  *
    *  *  Licensed under the Apache License, Version 2.0 (the "License");
    *  *  you may not use this file except in compliance with the License.
    *  *  You may obtain a copy of the License at
    *  *
    *  *       http://www.apache.org/licenses/LICENSE-2.0
    *  *
    *  *  Unless required by applicable law or agreed to in writing, software
    *  *  distributed under the License is distributed on an "AS IS" BASIS,
    *  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    *  *  See the License for the specific language governing permissions and
    *  *  limitations under the License.
    *  *
    *  * For more information: http://www.orientechnologies.com
    *
    */
package com.orientechnologies.orient.server.network.protocol.http;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import com.orientechnologies.common.exception.OException;

/**
  * Contains HTTP utilities static methods and constants.
  *
  * @author Luca Garulli
  *
  */
public class OHttpUtils {

   public static final String URL_SEPARATOR                       = "/";
   public static final char   URL_SEPARATOR_CHAR                  = '/';
   public static final byte[] EOL                                 = { (byte) '\r', (byte) '\n' };

   public static final String METHOD_GET                          = "GET";
   public static final String METHOD_PUT                          = "PUT";
   public static final String METHOD_DELETE                       = "DELETE";
   public static final String METHOD_POST                         = "POST";
   public static final String METHOD_PATCH                        = "PATCH";

   public static final String HEADER_CONTENT_LENGTH               = "Content-Length: ";
   public static final String HEADER_CONTENT_TYPE                 = "Content-Type: ";
   public static final String HEADER_COOKIE                       = "Cookie: ";
   public static final String HEADER_AUTHORIZATION                = "Authorization: ";
   public static final String HEADER_IF_MATCH                     = "If-Match: ";
   public static final String HEADER_X_FORWARDED_FOR              = "X-Forwarded-For: ";
   public static final String HEADER_AUTHENTICATION               = "OAuthentication: ";
   public static final String HEADER_CONTENT_ENCODING             = "Accept-Encoding: ";
   public static final String HEADER_ETAG                         = "ETag: ";

   public static final String AUTHORIZATION_BASIC                 = "Basic";
   public static final String OSESSIONID                          = "OSESSIONID";

   public static final String MULTIPART_CONTENT_DISPOSITION       = "Content-Disposition";
   public static final String MULTIPART_CONTENT_TRANSFER_ENCODING = "Content-Transfer-Encoding";
   public static final String MULTIPART_CONTENT_CHARSET           = "charset";
   public static final String MULTIPART_CONTENT_FILENAME          = "filename";
   public static final String MULTIPART_CONTENT_NAME              = "name";
   public static final String MULTIPART_CONTENT_TYPE              = "Content-Type";

   public static final String CONTENT_TYPE_MULTIPART              = "multipart/form-data";
   public static final String CONTENT_TYPE_URLENCODED             = "application/x-www-form-urlencoded";
   public static final String BOUNDARY                            = "boundary";

   public static final String CONTENT_TEXT_PLAIN                  = "text/plain";
   public static final String CONTENT_CSV                         = "text/csv";
   public static final String CONTENT_JSON                        = "application/json";
   public static final String CONTENT_JAVASCRIPT                  = "text/javascript";
   public static final String CONTENT_GZIP                        = "application/x-gzip";
   public static final String CONTENT_ACCEPT_GZIP_ENCODED         = "gzip";

   public static final String CALLBACK_PARAMETER_NAME             = "callback";

   public static final int    STATUS_CREATED_CODE                 = 201;
   public static final String STATUS_CREATED_DESCRIPTION          = "Created";
   public static final int    STATUS_OK_CODE                      = 200;
   public static final String STATUS_OK_DESCRIPTION               = "OK";
   public static final int    STATUS_OK_NOCONTENT_CODE            = 204;
   public static final String STATUS_OK_NOCONTENT_DESCRIPTION     = "OK";
   public static final int    STATUS_OK_NOMODIFIED_CODE           = 304;
   public static final String STATUS_OK_NOMODIFIED_DESCRIPTION    = "Not Modified";
   public static final int    STATUS_BADREQ_CODE                  = 400;
   public static final String STATUS_BADREQ_DESCRIPTION           = "Bad request";
   public static final int    STATUS_AUTH_CODE                    = 401;
   public static final String STATUS_AUTH_DESCRIPTION             = "Unauthorized";
   public static final int    STATUS_FORBIDDEN_CODE               = 403;
   public static final String STATUS_FORBIDDEN_DESCRIPTION        = "Forbidden";
   public static final int    STATUS_NOTFOUND_CODE                = 404;
   public static final String STATUS_NOTFOUND_DESCRIPTION         = "Not Found";
   public static final int    STATUS_INVALIDMETHOD_CODE           = 405;
   public static final String STATUS_INVALIDMETHOD_DESCRIPTION    = "Method Not Allowed";
   public static final int    STATUS_CONFLICT_CODE                = 409;
   public static final String STATUS_CONFLICT_DESCRIPTION         = "Conflict";
   public static final int    STATUS_INTERNALERROR_CODE           = 500;
   public static final String STATUS_INTERNALERROR_DESCRIPTION    = "Internal Server Error";
   public static final int    STATUS_NOTIMPL_CODE                 = 501;
   public static final String STATUS_NOTIMPL_DESCRIPTION          = "Not Implemented";

   protected static Map<String, String> getParameters(final String iURL) {
     int begin = iURL.indexOf("?");
     if (begin > -1) {
       Map<String, String> params = new HashMap<String, String>();
       String parameters = iURL.substring(begin + 1);
       final String[] paramPairs = parameters.split("&");
       for (String p : paramPairs) {
         final String[] parts = p.split("=");
         if (parts.length == 2)
           try {
             params.put(parts[0], URLDecoder.decode(parts[1], "UTF-8"));
           } catch (UnsupportedEncodingException e) {
             throw new OException(e);
           }
       }
       return params;
     }
     return Collections.emptyMap();
   }

   public static String nextChainUrl(final String iCurrentUrl) {
     if (!iCurrentUrl.contains("/"))
       return iCurrentUrl;

     return iCurrentUrl.startsWith("/") ? iCurrentUrl.substring(iCurrentUrl.indexOf('/', 1)) : iCurrentUrl.substring(iCurrentUrl
         .indexOf("/"));
   }
}
TOP

Related Classes of com.orientechnologies.orient.server.network.protocol.http.OHttpUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.