
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* 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 count 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.
*/

#ifndef AXIS2_HTTP_TRANSPORT_H
#define AXIS2_HTTP_TRANSPORT_H

#include <axis2_const.h>
#include <axutil_version.h>
#include <axiom_mime_const.h>

#ifdef __cplusplus
extern "C"
{
#endif

    /** @defgroup axis2_core_trans_http http transport
     * @ingroup axis2_transport
     * Description.
     * @{
     */

    /**
     * @defgroup axis2_core_transport_http core http transport
     * @ingroup axis2_core_trans_http
     * @{
     */

    /**
     * @brief HTTP protocol and message context constants.
     *
     */
#define AXIS2_HTTP_OUT_TRANSPORT_INFO "HTTPOutTransportInfo"

    /**
     * CARRIAGE RETURN AND LINE FEED
     */
#define AXIS2_HTTP_CRLF AXIS2_CRLF

    /**
     * PROTOCOL_VERSION
     */
#define AXIS2_HTTP_PROTOCOL_VERSION "PROTOCOL"

    /**
     * REQUEST_URI
     */
#define AXIS2_HTTP_REQUEST_URI "REQUEST_URI"

    /**
     * RESPONSE_CODE
     */
#define AXIS2_HTTP_RESPONSE_CODE "RESPONSE_CODE"

    /**
     * RESPONSE_WORD
     */
#define AXIS2_HTTP_RESPONSE_WORD "RESPONSE_WORD"

    /*
     * RESPONSE_CONTINUE_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_CONTINUE_CODE_VAL 100

    /*
     * RESPONSE_OK_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_OK_CODE_VAL 200

    /*
     * RESPONSE_CREATED_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_CREATED_CODE_VAL 201

    /**
     * RESPONSE_ACK_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_ACK_CODE_VAL 202

    /**
     * RESPONSE_NON_AUTHORITATIVE_INFO_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_NON_AUTHORITATIVE_INFO_CODE_VAL 203

    /**
     * RESPONSE_NO_CONTENT_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_NO_CONTENT_CODE_VAL 204

    /**
     * RESPONSE_RESET_CONTENT_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_RESET_CONTENT_CODE_VAL 205

    /**
     * RESPONSE_MULTIPLE_CHOICES_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_MULTIPLE_CHOICES_CODE_VAL 300

    /**
     * RESPONSE_MOVED_PERMANENTLY_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_MOVED_PERMANENTLY_CODE_VAL 301

    /**
     * RESPONSE_SEE_OTHER_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_SEE_OTHER_CODE_VAL 303

    /**
     * RESPONSE_NOT_MODIFIED_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_NOT_MODIFIED_CODE_VAL 304

    /**
     * RESPONSE_TEMPORARY_REDIRECT_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_TEMPORARY_REDIRECT_CODE_VAL 307

    /**
     * RESPONSE_BAD_REQUEST_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_VAL 400

    /**
     * RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL 401

    /**
     * RESPONSE_NOT_FOUND_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_VAL 404

    /**
     * RESPONSE_METHOD_NOT_ALLOWED_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_VAL 405

    /**
     * RESPONSE_NOT_ACCEPTABLE_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_NOT_ACCEPTABLE_CODE_VAL 406

    /**
     * RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_VAL 407

    /**
     * RESPONSE_REQUEST_TIMEOUT_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_VAL 408

    /**
     * RESPONSE_CONFLICT_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_CONFLICT_CODE_VAL 409

    /**
     * RESPONSE_GONE_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_GONE_CODE_VAL 410

    /**
     * RESPONSE_LENGTH_REQUIRED_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_LENGTH_REQUIRED_CODE_VAL 411

    /**
     * RESPONSE_PRECONDITION_FAILED_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_VAL 412

    /**
     * RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_VAL 413

    /**
     * RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_VAL 500

    /**
     * RESPONSE_NOT_IMPLEMENTED_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_NOT_IMPLEMENTED_CODE_VAL 501

    /**
     * RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL
     */
#define AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_VAL 503

    /**
     * RESPONSE_CONTINUE_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_CONTINUE_CODE_NAME "Continue"

    /**
     * RESPONSE_OK_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_OK_CODE_NAME "OK"

    /*
     * RESPONSE_CREATED_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_CREATED_CODE_NAME "Created"

    /**
     * RESPONSE_ACK_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_ACK_CODE_NAME "Accepted"

    /**
     * RESPONSE_NO_CONTENT_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_NO_CONTENT_CODE_NAME "No Content"

    /**
     * RESPONSE_NON_AUTHORITATIVE_INFO_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_NON_AUTHORITATIVE_INFO_CODE_NAME "Non-Authoritative Information"

    /**
     * RESPONSE_RESET_CONTENT_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_RESET_CONTENT_CODE_NAME "Reset Content"

    /**
     * RESPONSE_MULTIPLE_CHOICES_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_MULTIPLE_CHOICES_CODE_NAME "Multiple Choices"

    /**
     * RESPONSE_MOVED_PERMANENTLY_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_MOVED_PERMANENTLY_CODE_NAME "Moved Permanently"

    /**
     * RESPONSE_SEE_OTHER_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_SEE_OTHER_CODE_NAME "See Other"

    /**
     * RESPONSE_NOT_MODIFIED_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_NOT_MODIFIED_CODE_NAME "Not Modified"

    /**
     * RESPONSE_TEMPORARY_REDIRECT_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_TEMPORARY_REDIRECT_CODE_NAME "Temporary Redirect"

    /**
     * RESPONSE_BAD_REQUEST_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_BAD_REQUEST_CODE_NAME "Bad Request"

    /**
     * RESPONSE_HTTP_UNAUTHORIZED_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_NAME "Unauthorized"

    /**
     * RESPONSE_NOT_FOUND_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_NOT_FOUND_CODE_NAME "Not Found"

    /**
     * RESPONSE_METHOD_NOT_ALLOWED_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_METHOD_NOT_ALLOWED_CODE_NAME "Method Not Allowed"

    /**
     * RESPONSE_NOT_ACCEPTABLE_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_NOT_ACCEPTABLE_CODE_NAME "Not Acceptable"

    /**
     * RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED_CODE_NAME "Proxy Authentication Required"

    /**
     * RESPONSE_REQUEST_TIMEOUT_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_REQUEST_TIMEOUT_CODE_NAME "Request Timeout"

    /**
     * RESPONSE_CONFLICT_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_CONFLICT_CODE_NAME "Conflict"

    /**
     * RESPONSE_GONE_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_GONE_CODE_NAME "Gone"

    /**
     * RESPONSE_LENGTH_REQUIRED_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_LENGTH_REQUIRED_CODE_NAME "Length Required"

    /**
     * RESPONSE_PRECONDITION_FAILED_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_PRECONDITION_FAILED_CODE_NAME "Precondition Failed"

    /**
     * RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_REQUEST_ENTITY_TOO_LARGE_CODE_NAME "Request Entity Too Large"

    /**
     * RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR_CODE_NAME "Internal Server Error"

    /**
     * RESPONSE_NOT_IMPLEMENTED_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_NOT_IMPLEMENTED_CODE_NAME "Not Implemented"

    /**
     * RESPONSE_SERVICE_UNAVAILABLE_CODE_NAME
     */
#define AXIS2_HTTP_RESPONSE_SERVICE_UNAVAILABLE_CODE_NAME "Service Unavailable"

    /**
     * SOCKET
     */
#define AXIS2_SOCKET "SOCKET"

    /**
     * HEADER_PROTOCOL_10
     */
#define AXIS2_HTTP_HEADER_PROTOCOL_10 "HTTP/1.0"

    /**
     * HEADER_PROTOCOL_11
     */
#define AXIS2_HTTP_HEADER_PROTOCOL_11 "HTTP/1.1"

    /**
     * CHAR_SET_ENCODING
     */
#define AXIS2_HTTP_CHAR_SET_ENCODING "charset"

    /**
     * HEADER_POST
     */
#define AXIS2_HTTP_POST  "POST"

    /**
     * HEADER_GET
     */
#define AXIS2_HTTP_GET "GET"

    /**
     * HEADER_HEAD
     */
#define AXIS2_HTTP_HEAD "HEAD"

    /**
     * HEADER_PUT
     */
#define AXIS2_HTTP_PUT "PUT"

    /**
     * HEADER_DELETE
     */
#define AXIS2_HTTP_DELETE "DELETE"

    /**
     * HEADER_HOST
     */
#define AXIS2_HTTP_HEADER_HOST "Host"

    /**
     * HEADER_CONTENT_DESCRIPTION
     */
#define AXIS2_HTP_HEADER_CONTENT_DESCRIPTION "Content-Description"

    /**
     * HEADER_CONTENT_TYPE
     */
#define AXIS2_HTTP_HEADER_CONTENT_TYPE "Content-Type"
#define AXIS2_HTTP_HEADER_CONTENT_TYPE_ "Content-Type: "

    /**
     *USER DEFINED HEADER CONTENT TYPE
     */

#define AXIS2_USER_DEFINED_HTTP_HEADER_CONTENT_TYPE "User_Content_Type"

    /**
     * HEADER_CONTENT_TYPE
     */
#define AXIS2_HTTP_HEADER_CONTENT_TYPE_MIME_BOUNDARY "boundary"

    /**
     * HEADER_CONTENT_TRANSFER_ENCODING
     */
#define AXIS2_HTTP_HEADER_CONTENT_TRANSFER_ENCODING \
                                    "Content-Transfer-Encoding"

    /**
     * HEADER_CONTENT_LENGTH
     */
#define AXIS2_HTTP_HEADER_CONTENT_LENGTH "Content-Length"

    /**
     * HEADER_CONTENT_LANGUAGE
     */
#define AXIS2_HTTP_HEADER_CONTENT_LANGUAGE "Content-Language"

#define AXIS2_HTTP_HEADER_CONTENT_LENGTH_ "Content-Length: "

    /**
     * HEADER_CONTENT_LOCATION
     */
#define AXIS2_HTTP_HEADER_CONTENT_LOCATION "Content-Location"

    /**
     * HEADER_CONTENT_ID
     */
#define AXIS2_HTTP_HEADER_CONTENT_ID "Content-Id"

    /**
     * HEADER_SOAP_ACTION
     */
#define AXIS2_HTTP_HEADER_SOAP_ACTION "SOAPAction"
#define AXIS2_HTTP_HEADER_SOAP_ACTION_ "SOAPAction: "

    /**
     * HEADER_AUTHORIZATION
     */
#define AXIS2_HTTP_HEADER_AUTHORIZATION "Authorization"

    /**
     * HEADER_WWW_AUTHENTICATE
     */
#define AXIS2_HTTP_HEADER_WWW_AUTHENTICATE "WWW-Authenticate"

    /**
      * HEADER_PROXY_AUTHENTICATE
      */
#define AXIS2_HTTP_HEADER_PROXY_AUTHENTICATE "Proxy-Authenticate"

    /**
     * HEADER_PROXY_AUTHORIZATION
     */
#define AXIS2_HTTP_HEADER_PROXY_AUTHORIZATION "Proxy-Authorization"

    /**
     * AUTHORIZATION_REQUEST_PARAM_REALM
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_REALM "realm"

    /**
     * AUTHORIZATION_REQUEST_PARAM_DOMAIN
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_DOMAIN "domain"

    /**
     * AUTHORIZATION_REQUEST_PARAM_NONCE
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE "nonce"

    /**
     * AUTHORIZATION_REQUEST_PARAM_OPAQUE
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_OPAQUE "opaque"

    /**
     * AUTHORIZATION_REQUEST_PARAM_STALE
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_STALE "stale"

    /**
     * AUTHORIZATION_REQUEST_PARAM_ALGORITHM
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_ALGORITHM "algorithm"

    /**
     * AUTHORIZATION_REQUEST_PARAM_QOP
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_QOP "qop"

    /**
     * AUTHORIZATION_REQUEST_PARAM_USERNAME
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_USERNAME "username"

    /**
     * AUTHORIZATION_REQUEST_PARAM_URI
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_URI "uri"

    /**
     * AUTHORIZATION_REQUEST_PARAM_RESPONSE
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_RESPONSE "response"

    /**
     * AUTHORIZATION_REQUEST_PARAM_NONCE_COUNT
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_NONCE_COUNT "nc"

    /**
     * AUTHORIZATION_REQUEST_PARAM_CLIENT_NONCE
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_PARAM_CLIENT_NONCE "cnonce"

    /**
     * AUTHORIZATION_REQUEST_DEFAULT_CLIENT_NONCE
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_DEFAULT_CLIENT_NONCE "00000001"

    /**
     * AUTHORIZATION_REQUEST_QOP_OPTION_AUTH
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_QOP_OPTION_AUTH "auth"

    /**
     * AUTHORIZATION_REQUEST_QOP_OPTION_AUTH_INT
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_QOP_OPTION_AUTH_INT "auth-int"

    /**
     * AUTHORIZATION_REQUEST_STALE_STATE_TRUE
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_STALE_STATE_TRUE "true"

    /**
     * AUTHORIZATION_REQUEST_STALE_STATE_FALSE
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_STALE_STATE_FALSE "false"

    /**
     * AUTHORIZATION_REQUEST_ALGORITHM_MD5
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_ALGORITHM_MD5 "MD5"

    /**
     * AUTHORIZATION_REQUEST_ALGORITHM_MD5_SESS
     */
#define AXIS2_HTTP_AUTHORIZATION_REQUEST_ALGORITHM_MD5_SESS "MD5-sess"

    /**
     * HEADER_EXPECT
     */
#define AXIS2_HTTP_HEADER_EXPECT "Expect"

    /**
     * HEADER_EXPECT_100_Continue
     */
#define AXIS2_HTTP_HEADER_EXPECT_100_CONTINUE "100-continue"

    /**
     * HEADER_USER_AGENT
     */
#define AXIS2_HTTP_HEADER_USER_AGENT "User-Agent"

    /**
     * HEADER_USER_AGENT_AXIS2C
     */
#define AXIS2_HTTP_HEADER_USER_AGENT_AXIS2C "User-Agent: Axis2C/" AXIS2_VERSION_STRING

    /**
     * HEADER_SERVER
     */
#define AXIS2_HTTP_HEADER_SERVER "Server"

    /**
     * HEADER_DATE
     */
#define AXIS2_HTTP_HEADER_DATE "Date"

    /**
     * HEADER_SERVER_AXIS2C
     */
#define AXIS2_HTTP_HEADER_SERVER_AXIS2C "Axis2C/" AXIS2_VERSION_STRING

#define AXIS2_HTTP_HEADER_ACCEPT_ "Accept: "

#define AXIS2_HTTP_HEADER_EXPECT_ "Expect: "

    /**
     * HEADER_CACHE_CONTROL
     */
#define AXIS2_HTTP_HEADER_CACHE_CONTROL "Cache-Control"

    /**
     * HEADER_CACHE_CONTROL_NOCACHE
     */
#define AXIS2_HTTP_HEADER_CACHE_CONTROL_NOCACHE "no-cache"

    /**
     * HEADER_PRAGMA
     */
#define AXIS2_HTTP_HEADER_PRAGMA "Pragma"

    /**
     * HEADER_LOCATION
     */
#define AXIS2_HTTP_HEADER_LOCATION "Location"

    /**
     * REQUEST_HEADERS
     */
#define AXIS2_HTTP_REQUEST_HEADERS "HTTP-Request-Headers"

    /**
     * RESPONSE_HEADERS
     */
#define AXIS2_HTTP_RESPONSE_HEADERS "HTTP-Response-Headers"

    /* http 1.1 */

    /**
     * HEADER_TRANSFER_ENCODING
     */
#define AXIS2_HTTP_HEADER_TRANSFER_ENCODING "Transfer-Encoding"

    /**
     * HEADER_TRANSFER_ENCODING_CHUNKED
     */
#define AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED "chunked"

    /**
     * HEADER_CONNECTION
     */
#define AXIS2_HTTP_HEADER_CONNECTION "Connection"

    /**
     * HEADER_CONNECTION_CLOSE
     */
#define AXIS2_HTTP_HEADER_CONNECTION_CLOSE "close"

    /**
     * HEADER_CONNECTION_KEEPALIVE
     */
#define AXIS2_HTTP_HEADER_CONNECTION_KEEPALIVE "Keep-Alive"

    /**
     * HEADER_ACCEPT
     */
#define AXIS2_HTTP_HEADER_ACCEPT "Accept"

    /**
     * HEADER_ACCEPT_CHARSET
     */
#define AXIS2_HTTP_HEADER_ACCEPT_CHARSET "Accept-Charset"

    /**
      * AXIS2_HTTP_HEADER_ACCEPT_LANGUAGE
      */
#define AXIS2_HTTP_HEADER_ACCEPT_LANGUAGE "Accept-Language"

    /**
     * HEADER_ALLOW
     */
#define AXIS2_HTTP_HEADER_ALLOW "Allow"

    /**
     * HEADER_ACCEPT_ALL
     */
#define AXIS2_HTTP_HEADER_ACCEPT_ALL "*/*"

    /**
     * HEADER_ACCEPT_TEXT_ALL
     */
#define AXIS2_HTTP_HEADER_ACCEPT_TEXT_ALL "text/*"

    /**
     * HEADER_ACCEPT_TEXT_PLAIN
     */
#define AXIS2_HTTP_HEADER_ACCEPT_TEXT_PLAIN "text/plain"

    /**
     * HEADER_ACCEPT_TEXT_HTML
     */
#define AXIS2_HTTP_HEADER_ACCEPT_TEXT_HTML "text/html"

    /**
     * HEADER APPLICATION_XML
     */
#define AXIS2_HTTP_HEADER_ACCEPT_APPLICATION_XML "application/xml"

    /**
     * HEADER_ACCEPT_TEXT_XML
     */
#define AXIS2_HTTP_HEADER_ACCEPT_TEXT_XML "text/xml"

    /**
     * HEADER_ACCEPT_APPL_SOAP
     */
#define AXIS2_HTTP_HEADER_ACCEPT_APPL_SOAP "application/soap+xml"

    /**
     * HEADER_ACCEPT_X_WWW_FORM_URLENCODED
     */
#define AXIS2_HTTP_HEADER_ACCEPT_X_WWW_FORM_URLENCODED "application/x-www-form-urlencoded"

    /**
     * HEADER XOP XML
     */
#define AXIS2_HTTP_HEADER_ACCEPT_XOP_XML AXIOM_MIME_TYPE_XOP_XML

    /**
     * HEADER_ACCEPT_MULTIPART_RELATED
     */
#define AXIS2_HTTP_HEADER_ACCEPT_MULTIPART_RELATED AXIOM_MIME_TYPE_MULTIPART_RELATED

    /**
     * HEADER_ACCEPT_APPLICATION_DIME
     */
#define AXIS2_HTTP_HEADER_ACCEPT_APPLICATION_DIME "application/dime"

    /**
     * Cookie headers
     */
#define AXIS2_HTTP_HEADER_COOKIE "Cookie"

    /**
     * HEADER_COOKIE2
     */
#define AXIS2_HTTP_HEADER_COOKIE2 "Cookie2"

    /**
     * HEADER_SET_COOKIE
     */
#define AXIS2_HTTP_HEADER_SET_COOKIE "Set-Cookie"

    /**
     * HEADER_SET_COOKIE2
     */
#define AXIS2_HTTP_HEADER_SET_COOKIE2 "Set-Cookie2"

    /**
     * HTTP header field values
     */
#define AXIS2_HTTP_HEADER_DEFAULT_CHAR_ENCODING "iso-8859-1"

    /**
     * REPONSE_HTTP_OK
     */
#define AXIS2_HTTP_RESPONSE_OK "200 OK"

    /**
     * RESPONSE_HTTP_NOCONTENT
     */
#define AXIS2_HTTP_RESPONSE_NOCONTENT "202 OK";

    /**
     * RESPONSE_HTTP_UNAUTHORIZED
     */
#define AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED "401 Unauthorized"

    /**
      * RESPONSE_PROXY_AUTHENTICATION_REQUIRED
      */
#define AXIS2_HTTP_RESPONSE_PROXY_AUTHENTICATION_REQUIRED "407 Proxy Authentication Required"

    /**
     * RESPONSE_BAD_REQUEST
     */
#define AXIS2_HTTP_RESPONSE_BAD_REQUEST "400 Bad Request"

    /**
     * RESPONSE_HTTP_INTERNAL_SERVER_ERROR
     */
#define AXIS2_HTTP_RESPONSE_INTERNAL_SERVER_ERROR "500 Internal Server Error"

    /**
     * HTTP_REQ_TYPE
     */
#define AXIS2_HTTP_REQ_TYPE "HTTP_REQ_TYPE"

    /**
     * SO_TIMEOUT
     */
#define AXIS2_HTTP_SO_TIMEOUT "SO_TIMEOUT"

    /**
     * CONNECTION_TIMEOUT
     */
#define AXIS2_HTTP_CONNECTION_TIMEOUT "CONNECTION_TIMEOUT"

    /**
     * DEFAULT_SO_TIMEOUT
     */
#define AXIS2_HTTP_DEFAULT_SO_TIMEOUT 60000

    /**
     * DEFAULT_CONNECTION_TIMEOUT
     */
#define AXIS2_HTTP_DEFAULT_CONNECTION_TIMEOUT 60000

#define AXIS2_HTTP_PROXY "PROXY"

    /**
     * ISO-8859-1 encoding
     */
#define AXIS2_HTTP_ISO_8859_1 "ISO-8859-1"

    /**
     * Default charset in content
     */
#define AXIS2_HTTP_DEFAULT_CONTENT_CHARSET "ISO-8859-1"

    /**
     * Field TRANSPORT_HTTP
     */
#define AXIS2_TRANSPORT_HTTP "http"

    /**
     * Msg context response written key
     */
#define AXIS2_RESPONSE_WRITTEN "CONTENT_WRITTEN"

    /**
     * Content type for MTOM
     */
#define MTOM_RECIVED_CONTENT_TYPE "MTOM_RECEIVED"

    /**
      * Constant for HTTP authentication
      */
#define AXIS2_HTTP_AUTHENTICATION "HTTP-Authentication"

    /**
      * Constant for HTTP authentication username
      */
#define AXIS2_HTTP_AUTHENTICATION_USERNAME "username"

    /**
      * Constant for HTTP authentication password
      */
#define AXIS2_HTTP_AUTHENTICATION_PASSWORD "password"

    /**
     * Constant for HTTP proxy
     */
#define AXIS2_HTTP_PROXY "PROXY"

    /**
     * Constant for HTTP proxy host
     */
#define AXIS2_HTTP_PROXY_HOST "proxy_host"

    /**
     * Constant for HTTP proxy port
     */
#define AXIS2_HTTP_PROXY_PORT "proxy_port"

    /**
      * Constant for HTTP proxy username
      */
#define AXIS2_HTTP_PROXY_USERNAME "proxy_username"

    /**
      * Constant for HTTP proxy password
      */
#define AXIS2_HTTP_PROXY_PASSWORD "proxy_password"


#define AXIS2_HTTP_PROXY_API "PROXY_API"

    /**
     * Constant for HTTP method
     */
#define AXIS2_HTTP_METHOD "HTTP_METHOD"

    /**
     * Constant for SSL Server Certificate
     */
#define AXIS2_SSL_SERVER_CERT "SERVER_CERT"

    /**
     * Constant for SSL Key File
     */
#define AXIS2_SSL_KEY_FILE "KEY_FILE"

    /**
     * Constant for SSL Passphrase
     */
#define AXIS2_SSL_PASSPHRASE "SSL_PASSPHRASE"

    /**
     * HTTP authentication username property name
     */
#define AXIS2_HTTP_AUTH_UNAME "HTTP_AUTH_USERNAME"

    /**
     * HTTP authentication password property name
     */
#define AXIS2_HTTP_AUTH_PASSWD "HTTP_AUTH_PASSWD"

    /**
      * Proxy authentication username property name
      */
#define AXIS2_PROXY_AUTH_UNAME "PROXY_AUTH_USERNAME"

    /**
      * Proxy authentication password property name
      */
#define AXIS2_PROXY_AUTH_PASSWD "PROXY_AUTH_PASSWD"


    /*#define AXIS2_HTTP_AUTH_TYPE "HTTP_AUTH_TYPE"*/

    /**
     * HTTP "Basic" authentication
     */
#define AXIS2_HTTP_AUTH_TYPE_BASIC "Basic"

    /**
     * HTTP "Digest" authentication
     */
#define AXIS2_HTTP_AUTH_TYPE_DIGEST "Digest"

    /**
      * Proxy "Basic" authentication
      */
#define AXIS2_PROXY_AUTH_TYPE_BASIC "Basic"

    /**
      * Proxy "Digest" authentication
      */
#define AXIS2_PROXY_AUTH_TYPE_DIGEST "Digest"


    /**
     *HTTP Transport Level Error
     */
#define AXIS2_HTTP_TRANSPORT_ERROR "http_transport_error"

    /**
     *415 Unsupported media Type
     */
#define AXIS2_HTTP_UNSUPPORTED_MEDIA_TYPE "415 Unsupported Media Type\r\n"

    /**
     *Constant for HTTP headers that user specify, Those headers will
     *provided as property to the message context.
     */
#define AXIS2_TRANSPORT_HEADER_PROPERTY "HTTP_HEADER_PROPERTY"


#define AXIS2_TRANSPORT_URL_HTTPS "HTTPS"

#define AXIS2_Q_MARK_STR "?"

#define AXIS2_Q_MARK '?'

#define AXIS2_H_MARK '#'

#define AXIS2_ALL "ALL"

#define AXIS2_USER_AGENT "Axis2C/" AXIS2_VERSION_STRING

#define AXIS2_AND_SIGN "&"

#define AXIS2_ESC_DOUBLE_QUOTE '\"'

#define AXIS2_ESC_DOUBLE_QUOTE_STR "\""

#define AXIS2_ESC_SINGLE_QUOTE '\''

#define AXIS2_DOUBLE_QUOTE '"'

#define AXIS2_ESC_NULL '\0'

#define AXIS2_SEMI_COLON_STR ";"

#define AXIS2_SEMI_COLON ';'

#define AXIS2_COLON ':'

#define AXIS2_COLON_STR ":"

#define AXIS2_CONTENT_TYPE_ACTION ";action=\""

#define AXIS2_CONTENT_TYPE_CHARSET ";charset="

#define AXIS2_CHARSET "charset"

#define AXIS2_PORT_STRING "port"

#define AXIS2_DEFAULT_HOST_ADDRESS "127.0.0.1"

#define AXIS2_DEFAULT_SVC_PATH "/axis2/services/"

#define AXIS2_HTTP_PROTOCOL "http"

#define AXIS2_HTTP "HTTP"

#define AXIS2_SPACE_COMMA " ,"

#define AXIS2_COMMA ','

#define AXIS2_Q 'q'

#define AXIS2_EQ_N_SEMICOLON " =;"

#define AXIS2_LEVEL "level"

#define AXIS2_SPACE_SEMICOLON " ;"

#define AXIS2_SPACE ' '

#define AXIS2_RETURN '\r'

#define AXIS2_NEW_LINE '\n'

#define AXIS2_F_SLASH '/'

#define AXIS2_B_SLASH '\\'

#define AXIS2_EQ '='

#define AXIS2_AND '&'

#define AXIS2_PERCENT '%'

#define AXIS2_HTTP_SERVER " (Simple Axis2 HTTP Server)"

#define AXIS2_COMMA_SPACE_STR ", "

#define AXIS2_SPACE_TAB_EQ " \t="

#define AXIS2_ACTION "action"

    /* Error Messages */

#define AXIS2_HTTP_NOT_FOUND "<html><head><title>404 Not Found</title></head>\
 <body><h2>Not Found</h2><p>The requested URL was not found on this server.\
</p></body></html>"  


#define AXIS2_HTTP_NOT_IMPLEMENTED "<html><head><title>501 Not Implemented\
</title></head><body><h2>Not Implemented</h2><p>The requested Method is not\
implemented on this server.</p></body></html>"


#define AXIS2_HTTP_INTERNAL_SERVER_ERROR "<html><head><title>500 Internal Server\
 Error</title></head><body><h2>Internal Server Error</h2><p>The server \
encountered an unexpected condition which prevented it from fulfilling the \
request.</p></body></html>"


#define AXIS2_HTTP_METHOD_NOT_ALLOWED "<html><head><title>405 Method Not Allowed\
</title></head><body><h2>Method Not Allowed</h2><p>The requested method is not\
allowed for this URL.</p></body></html>"

#define AXIS2_HTTP_NOT_ACCEPTABLE "<html><head><title>406 Not Acceptable\
</title></head><body><h2>Not Acceptable</h2><p>An appropriate representation of \
the requested resource could not be found on this server.</p></body></html>"

#define AXIS2_HTTP_BAD_REQUEST "<html><head><title>400 Bad Request</title>\
</head><body><h2>Bad Request</h2><p>Your client sent a request that this server\
 could not understand.</p></body></html>"

#define AXIS2_HTTP_REQUEST_TIMEOUT "<html><head><title>408 Request Timeout\
</title></head><body><h2>Request Timeout</h2><p>Cannot wait any longer for \
the HTTP request from the client.</p></body></html>" 

#define AXIS2_HTTP_CONFLICT "<html><head><title>409 Conflict</title></head>\
<body><h2>Conflict</h2><p>The client attempted to put the server\'s resources\
 into an invalid state.</p></body></html>"

#define AXIS2_HTTP_GONE "<html><head><title>410 Gone</title></head><body>\
<h2>Gone</h2><p>The requested resource is no longer available on this server.\
</p></body></html>"

#define AXIS2_HTTP_PRECONDITION_FAILED "<html><head><title>412 Precondition \
Failed</title></head><body><h2>Precondition Failed</h2><p>A precondition for\
 the requested URL failed.</p></body></html>"

#define AXIS2_HTTP_TOO_LARGE "<html><head><title>413 Request Entity Too Large\
</title></head><body><h2>Request Entity Too Large</h2><p>The data provided in\
 the request is too large or the requested resource does not allow request \
data.</p></body></html>"

#define AXIS2_HTTP_SERVICE_UNAVILABLE "<html><head><title>503 Service \
Unavailable</title></head><body><h2>Service Unavailable</h2><p>The service\
 is temporarily unable to serve your request.</p></body></html>"

    /** @} */

#ifdef __cplusplus
}
#endif
#endif                          /* AXIS2_HTTP_TRANSPORT_H */
