再启动http服务之前,我们默认注册默认路由处理,再执行event_base_dispatch运行http服务。请求相关:evhttp_request_get_command: 获取http请求方式,GET/POST等等evhttp_request_get_uri: 获取uri信息evhttp_uri_parse: 解析uri请求信息evhttp_uri_get_path: 获取http get请求路径evhttp_request_get_input_headers: 获取...
voidhttp_request_done(struct evhttp_request *req,void*arg){ printf("DONE!\n"); } intmain(intargc,char**argv){ structevent_base*base=event_base_new(); structevhttp_connection*conn=evhttp_connection_base_new(base,NULL, "127.0.0.1", 3000); structevhttp_request*req=evhttp_request_new(http_...
bufferevent*bev=bufferevent_socket_new(base,-1,BEV_OPT_CLOSE_ON_FREE); evhttp_connection*ev_conn=evhttp_connection_base_bufferevent_new(base,NULL,bev,host,port); //http client 请求 回调函数设置 evhttp_request*req=evhttp_request_new(http_client_cb,base); //设置请求header信息 evkeyvalq*output_...
void (*cb)(struct evhttp_request *, void *), void *cbarg) { struct evhttp_cb *http_cb; TAILQ_FOREACH(http_cb, &http->callbacks, next) { if (strcmp(http_cb->what, uri) == 0) return (-1); } //申请内存 if ((http_cb = mm_calloc(1, sizeof(struct evhttp_cb))) == NULL...
structevhttp_request*req,void*arg){// 创建响应的HTTP headerevhttp_add_header(evhttp_request_get_...
创建event_base和evhttp structevent_base*event_base_new(void);structevhttp*evhttp_new(structevent_base*base); 绑定地址和端口 intevhttp_bind_socket(structevhttp*http,constchar*address,ev_uint16_t port); 设置处理函数 voidevhttp_set_gencb(structevhttp*http,void(*cb)(structevhttp_request*,void*),...
2.3 结构体evhttp_request structevhttp_request{#ifdefined(TAILQ_ENTRY)TAILQ_ENTRY(evhttp_request)next;#elsestruct{structevhttp_request*tqe_next;structevhttp_request**tqe_prev;}next;#endif/* the connection object that this request belongs to */structevhttp_connection*evcon;intflags;/** The request ...
evhttp_connection_free(evcon); } 两个重要函数:evhttp_get_request_connection、evhttp_associate_new_request_with_connection。 1.evhttp_get_request_connection /** Takes a file descriptor to read a request from. * The callback is executed once the whole request has been read.*/staticstructevhttp_...
evhttp_connection_free(evcon); } 两个重要函数:evhttp_get_request_connection、evhttp_associate_new_request_with_connection。 1.evhttp_get_request_connection /** Takes a file descriptor to read a request from. * The callback is executed once the whole request has been read.*/staticstructevhttp_...
51 http_req = evhttp_request_new(rspCallback,(void *)arg); //rspCallback接收消息 52 struct evkeyvalq *head = evhttp_request_get_output_headers(http_req); 53 55 evhttp_add_header(head,"User-Agent","My Device"); 56 evhttp_add_header(head,"Connection","Keep-Alive"); ...