본문 바로가기

프로그래밍/Tizen

[EFL] HTTP 연결


Ecore_Con_Url *ecore_url = NULL;


초기화

ecore_init();

ecore_con_init();

ecore_con_url_init();


ECore_Con_Url 객체 생성

ecore_url = ecore_con_url_new( const char *url  );


// type을 지정해서 생성

const char *type = "POST"; // "GET"

ecore_url = ecore_con_url_custom_new( const char *url, type );


객체의 url 변경

ecore_con_url_url_set( ecore_url , const char *new_url );


헤더추가

ecore_con_url_additional_header_add( ecore_url, "Name", "Value" );


핸들러

// 핸들러정의 (이벤트 핸들러)

ecore_event_handler_add( ECORE_CON_EVENT_URL_PROGRESS, progress_callback, NULL );

ecore_event_handler_add( ECORE_CON_EVENT_URL_COMPLETE, complete_callback, NULL );

ecore_event_handler_add( ECORE_CON_EVENT_URL_DATA, data_callback, NULL );


연결

Eina_Bool ecore_con_url_get( Ecore_Con_Url *ecore_url );

Eina_Bool ecore_con_url_post( Ecore_Con_Url *ecore_url,

const void *data,

long data_length,

const char *content_type);



객체해제

ecore_con_url_free( ecore_url );


해제

ecore_con_url_shutdown();

ecore_con_shutdown();

ecore_shutdown();



콜백 메쏘드( 이벤트 콜백 )

// event_info에 전달되는 이벤트 객체에 따라 필요한 처리를 하면 된다.

// 예를 들어 Ecore_Con_Event_Url_Data 의 경우 size와 data를 가지고 있어 아래와 같은 처리가 가능하다.

Eina_Binbuf *buffer = eina_binbuf_new();

Ecore_Con_Event_Url_Data *url_data = event_info;

eina_binbuf_append_length( buffer, url_data->data, url_data->size);

eina_binbuf_free( buffer );



static Eina_Bool progress_callback( void *data, int type, void *event_info ) 

{

Ecore_Con_Event_Url_Progress *progress = event_info;

progress->down.now;

progress->down.total;


return EINA_TRUE;

}


static Eina_Bool complete_callback( void *data, int type, void *event_info )

{

Ecore_Con_Event_Url_Complete *complete = event_info;


ecore_main_loop_quit();

return EINA_TRUE;

}



응답헤더 얻기

char *str;

Eina_List *item;

Eina_List *headers = ecore_con_url_response_headers_get( ecore_url );

EINA_LIST_FOREACH( headers, item, str )

{

}


응답 데이터를 파일로 저장

// 요청이 파일인 경우 다운로드를 위해 파일 디스크립터를 설정한다.

ecore_con_url_fd_set( Ecore_Con_Url *ecore_url, int fd );



기타

// 버전 설정

ecore_con_url_http_version_set( Ecore_Con_Url *ecore_url, Ecore_Con_Url_Http_Version version );


// 타임아웃 설정

ecore_con_url_timeout_set( Ecore_Con_Url *ecore_url , double second );


// 응답코드 얻기

int ecore_con_url_status_code_get( Ecore_Con_Url *ecore_url );


'프로그래밍 > Tizen' 카테고리의 다른 글

[Tizen] 패키징 및 signing  (0) 2014.07.31
[EFL] Ecore_Exe 프로세스간 통신  (0) 2014.07.19
[EFL] Elementary  (3) 2014.07.17
[EFL] Elementary 위젯  (0) 2014.07.17
[EFL] EDC 스크립트  (0) 2014.07.17
[EFL] Evas 오브젝트  (0) 2014.07.16
[EFL] Ecore 이벤트 핸들러  (0) 2014.07.13
[EFL] 기본 윈도우  (0) 2014.07.13