00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIS2_HTTP_TRANSPORT_UTILS_H
00020 #define AXIS2_HTTP_TRANSPORT_UTILS_H
00021
00034 #include <axis2_const.h>
00035 #include <axis2_defines.h>
00036 #include <axutil_env.h>
00037 #include <axiom_stax_builder.h>
00038 #include <axis2_msg_ctx.h>
00039 #include <axis2_conf_ctx.h>
00040 #include <axutil_hash.h>
00041 #include <axiom_element.h>
00042 #include <axutil_stream.h>
00043 #include <axiom_soap_envelope.h>
00044 #include <axutil_http_chunked_stream.h>
00045 #include <axis2_http_out_transport_info.h>
00046 #include <axutil_url.h>
00047
00048 #ifdef __cplusplus
00049 extern "C"
00050 {
00051 #endif
00052
00053 typedef enum axis2_http_method_types
00054 {
00055 AXIS2_HTTP_METHOD_GET = 0,
00056 AXIS2_HTTP_METHOD_POST,
00057 AXIS2_HTTP_METHOD_HEAD,
00058 AXIS2_HTTP_METHOD_PUT,
00059 AXIS2_HTTP_METHOD_DELETE
00060 }axis2_http_method_types_t;
00061
00062
00063 typedef struct axis2_http_transport_in
00064 {
00066 axis2_char_t *content_type;
00068 int content_length;
00070 axis2_msg_ctx_t *msg_ctx;
00071
00073 axis2_char_t *soap_action;
00074
00076 axis2_char_t *request_uri;
00077
00079 axutil_stream_t *in_stream;
00080
00082 axis2_char_t *remote_ip;
00083
00085 axis2_char_t *svr_port;
00086
00088 axis2_char_t *transfer_encoding;
00089
00091 axis2_char_t *accept_header;
00092
00094 axis2_char_t *accept_language_header;
00095
00097 axis2_char_t *accept_charset_header;
00100 int request_method;
00102 axis2_http_out_transport_info_t *out_transport_info;
00104 axis2_char_t *request_url_prefix;
00105
00106 }axis2_http_transport_in_t;
00107
00108 typedef struct axis2_http_transport_out
00109 {
00111 axis2_char_t *http_status_code_name;
00113 int http_status_code;
00115 axis2_msg_ctx_t *msg_ctx;
00117 void *response_data;
00119 axis2_char_t *content_type;
00121 int response_data_length;
00123 axis2_char_t *content_language;
00125 axutil_array_list_t *output_headers;
00126
00127 }axis2_http_transport_out_t;
00128
00129
00136 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00137 axis2_http_transport_utils_transport_in_init(axis2_http_transport_in_t *in,
00138 const axutil_env_t *env);
00139
00146 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00147 axis2_http_transport_utils_transport_in_uninit(axis2_http_transport_in_t *request,
00148 const axutil_env_t *env);
00149
00156 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00157 axis2_http_transport_utils_transport_out_init(axis2_http_transport_out_t *out,
00158 const axutil_env_t *env);
00159
00160
00161 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00162 axis2_http_transport_utils_transport_out_uninit(axis2_http_transport_out_t *response,
00163 const axutil_env_t *env);
00173 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00174 axis2_http_transport_utils_process_request(
00175 const axutil_env_t *env,
00176 axis2_conf_ctx_t *conf_ctx,
00177 axis2_http_transport_in_t *request,
00178 axis2_http_transport_out_t *response);
00179
00180
00181
00199 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00200 axis2_http_transport_utils_process_http_post_request(
00201 const axutil_env_t * env,
00202 axis2_msg_ctx_t * msg_ctx,
00203 axutil_stream_t * in_stream,
00204 axutil_stream_t * out_stream,
00205 const axis2_char_t * content_type,
00206 const int content_length,
00207 axutil_string_t * soap_action_header,
00208 const axis2_char_t * request_uri);
00209
00210
00224 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00225 axis2_http_transport_utils_process_http_put_request(
00226 const axutil_env_t * env,
00227 axis2_msg_ctx_t * msg_ctx,
00228 axutil_stream_t * in_stream,
00229 axutil_stream_t * out_stream,
00230 const axis2_char_t * content_type,
00231 const int content_length,
00232 axutil_string_t * soap_action_header,
00233 const axis2_char_t * request_uri);
00234
00235 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00236 axis2_http_transport_utils_process_http_get_request(
00237 const axutil_env_t * env,
00238 axis2_msg_ctx_t * msg_ctx,
00239 axutil_stream_t * in_stream,
00240 axutil_stream_t * out_stream,
00241 const axis2_char_t * content_type,
00242 axutil_string_t * soap_action_header,
00243 const axis2_char_t * request_uri,
00244 axis2_conf_ctx_t * conf_ctx,
00245 axutil_hash_t * request_params);
00246
00247 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00248
00249 axis2_http_transport_utils_process_http_head_request(
00250 const axutil_env_t * env,
00251 axis2_msg_ctx_t * msg_ctx,
00252 axutil_stream_t * in_stream,
00253 axutil_stream_t * out_stream,
00254 const axis2_char_t * content_type,
00255 axutil_string_t * soap_action_header,
00256 const axis2_char_t * request_uri,
00257 axis2_conf_ctx_t * conf_ctx,
00258 axutil_hash_t * request_params);
00259
00260 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00261
00262 axis2_http_transport_utils_process_http_delete_request(
00263 const axutil_env_t * env,
00264 axis2_msg_ctx_t * msg_ctx,
00265 axutil_stream_t * in_stream,
00266 axutil_stream_t * out_stream,
00267 const axis2_char_t * content_type,
00268 axutil_string_t * soap_action_header,
00269 const axis2_char_t * request_uri,
00270 axis2_conf_ctx_t * conf_ctx,
00271 axutil_hash_t * request_params);
00272
00273 AXIS2_EXTERN axiom_stax_builder_t *AXIS2_CALL
00274
00275 axis2_http_transport_utils_select_builder_for_mime(
00276 const axutil_env_t * env,
00277 axis2_char_t * request_uri,
00278 axis2_msg_ctx_t * msg_ctx,
00279 axutil_stream_t * in_stream,
00280 axis2_char_t * content_type);
00281
00282 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
00283
00284 axis2_http_transport_utils_do_write_mtom(
00285 const axutil_env_t * env,
00286 axis2_msg_ctx_t * msg_ctx);
00287
00288 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00289
00290 axis2_http_transport_utils_get_request_params(
00291 const axutil_env_t * env,
00292 axis2_char_t * request_uri);
00293
00294 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00295 axis2_http_transport_utils_get_not_found(
00296 const axutil_env_t * env,
00297 axis2_conf_ctx_t * conf_ctx);
00298
00299 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00300 axis2_http_transport_utils_get_not_implemented(
00301 const axutil_env_t * env,
00302 axis2_conf_ctx_t * conf_ctx);
00303
00304 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00305 axis2_http_transport_utils_get_method_not_allowed(
00306 const axutil_env_t * env,
00307 axis2_conf_ctx_t * conf_ctx);
00308
00309 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00310 axis2_http_transport_utils_get_not_acceptable(
00311 const axutil_env_t * env,
00312 axis2_conf_ctx_t * conf_ctx);
00313
00314 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00315 axis2_http_transport_utils_get_bad_request(
00316 const axutil_env_t * env,
00317 axis2_conf_ctx_t * conf_ctx);
00318
00319 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00320 axis2_http_transport_utils_get_request_timeout(
00321 const axutil_env_t * env,
00322 axis2_conf_ctx_t * conf_ctx);
00323
00324 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00325 axis2_http_transport_utils_get_conflict(
00326 const axutil_env_t * env,
00327 axis2_conf_ctx_t * conf_ctx);
00328
00329 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00330 axis2_http_transport_utils_get_gone(
00331 const axutil_env_t * env,
00332 axis2_conf_ctx_t * conf_ctx);
00333
00334 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00335 axis2_http_transport_utils_get_precondition_failed(
00336 const axutil_env_t * env,
00337 axis2_conf_ctx_t * conf_ctx);
00338
00339 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00340 axis2_http_transport_utils_get_request_entity_too_large(
00341 const axutil_env_t * env,
00342 axis2_conf_ctx_t * conf_ctx);
00343
00344 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00345 axis2_http_transport_utils_get_service_unavailable(
00346 const axutil_env_t * env,
00347 axis2_conf_ctx_t * conf_ctx);
00348
00349 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00350 axis2_http_transport_utils_get_internal_server_error(
00351 const axutil_env_t * env,
00352 axis2_conf_ctx_t * conf_ctx);
00353
00354 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00355
00356 axis2_http_transport_utils_get_services_html(
00357 const axutil_env_t * env,
00358 axis2_conf_ctx_t * conf_ctx);
00359
00360 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00361
00362 axis2_http_transport_utils_get_services_static_wsdl(
00363 const axutil_env_t * env,
00364 axis2_conf_ctx_t * conf_ctx,
00365 axis2_char_t * request_url);
00366
00367 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00368
00369 axis2_http_transport_utils_get_request_params(
00370 const axutil_env_t * env,
00371 axis2_char_t * request_uri);
00372
00373 AXIS2_EXTERN axiom_soap_envelope_t *AXIS2_CALL
00374
00375 axis2_http_transport_utils_create_soap_msg(
00376 const axutil_env_t * env,
00377 axis2_msg_ctx_t * msg_ctx,
00378 const axis2_char_t * soap_ns_uri);
00379
00380 AXIS2_EXTERN axutil_array_list_t* AXIS2_CALL
00381 axis2_http_transport_utils_process_accept_headers(
00382 const axutil_env_t *env,
00383 axis2_char_t *accept_value);
00384
00386 #ifdef __cplusplus
00387 }
00388 #endif
00389
00390 #endif