当前位置: 首页 > news >正文

先做网站还是先备案房地产销售工作内容

先做网站还是先备案,房地产销售工作内容,网站系统分析报告,安庆网站设计做项目的时候用到了http通信&#xff0c;同事用libevent库写的&#xff0c;特此记录后端从前端拿到消息后的处理方式 void CHTTPTest::request(const std::any & data) {// data 是从前端拿到的数据void *obj std::any_cast<void *>(data); // std::any是C17新标准…

做项目的时候用到了http通信,同事用libevent库写的,特此记录后端从前端拿到消息后的处理方式

void CHTTPTest::request(const std::any & data)
{// data 是从前端拿到的数据void *obj = std::any_cast<void *>(data); // std::any是C++17新标准的struct evhttp_request *req = (evhttp_request*)(obj);enum evhttp_cmd_type method = evhttp_request_get_command(req);  // 获取请求方法if (method == EVHTTP_REQ_GET){// GET 请求this->getProcess(req);}else if (method == EVHTTP_REQ_POST){// POST 请求this->postProcess(req);}else{// 错误this->return_msg(req, "Unsupported request method.", ErrorCode::fail);}
}

GET的请求处理,包括前端请求的参数

void CHTTPTest::getProcess(evhttp_request * req)
{//获取请求uriconst char* uri = evhttp_request_get_uri(req);//解码uristruct evhttp_uri* decoded_uri = evhttp_uri_parse(uri);if (!decoded_uri){return_msg(req, "Failed to parse URI\n", ErrorCode::fail);return;}// 找到路径QString path = evhttp_uri_get_path(decoded_uri);if (path.isEmpty()){path = "/";}//解析查询字符串struct evkeyvalq params;evhttp_parse_query(uri, &params);struct evkeyval* kv;// 创建 QVariantHash 用于存储参数//QVariantHash paramList;// 创建 JSON 对象用于存储查询参数QJsonObject jsonObj;// 遍历查询参数,将其添加到 JSON 对象中for (kv = params.tqh_first; kv; kv = kv->next.tqe_next){jsonObj[kv->key] = kv->value;}// 清理查询参数的内存evhttp_clear_headers(&params);// 创建 JSON 文档QJsonDocument JsonDoc = QJsonDocument(jsonObj);// 检查 JSON 对象是否为空,返回相应的消息QString Info = JsonDoc.toJson(QJsonDocument::Compact);// 将 JSON 文档转换为字符串并使用紧凑格式if (jsonObj.isEmpty()){return_msg(req, "Param Is Empty\n", ErrorCode::fail);return;}else{// 逻辑处理接口this->logicProcess(req, path, jsonObj);}
}

POST的请求处理,包括前端发送的参数处理

void CHTTPTest::postProcess(evhttp_request * req)
{const char* uri = evhttp_request_get_uri(req);struct evhttp_uri* decoded_uri = evhttp_uri_parse(uri);if (!decoded_uri){printf("Failed to parse URI\n");return;}QString path = evhttp_uri_get_path(decoded_uri);if (path.isEmpty()){path = "/";}struct evbuffer* input_buf = evhttp_request_get_input_buffer(req);size_t data_len = evbuffer_get_length(input_buf);char* data = (char*)malloc(data_len + 1);if (data){evbuffer_copyout(input_buf, data, data_len);data[data_len] = '\0';QJsonParseError parseError;QJsonDocument doc = QJsonDocument::fromJson(data, &parseError);if (parseError.error != QJsonParseError::NoError){this->return_msg(req, parseError.errorString(), ErrorCode::fail);return;}QJsonObject jsonObj = doc.object();// 逻辑处理接口this->logicProcess(req, path, jsonObj);}
}

内部消息返回前端的处理

void CDigitalModelManage::return_msg(evhttp_request * req, QString msg, int errCode)
{struct evbuffer* buf = evbuffer_new();if (!buf){return;}QJsonParseError parseError;QJsonDocument jsonDoc = QJsonDocument::fromJson(msg.toUtf8(), &parseError);QJsonObject jsonObject;QJsonDocument backJsonDoc;if (parseError.error == QJsonParseError::NoError){jsonObject = jsonDoc.object();jsonObject["code"] = errCode;}else{jsonObject["code"] = errCode;jsonObject["message"] = msg;}backJsonDoc = QJsonDocument(jsonObject);QString backInfo = backJsonDoc.toJson(QJsonDocument::Compact);	evbuffer_add_printf(buf, backInfo.toUtf8().constData());evhttp_add_header(req->output_headers, "Content-Type", "application/json; charset=utf-8");evhttp_send_reply(req, HTTP_OK, "OK", buf);evbuffer_free(buf);	
}

在接口logicProcess中处理就是各个消息的内部逻辑处理了,传的第一个参数是http请求的内存块(我是这么理解的),第二个参数是和前端约定的URL,第三个参数就是前端发送的JSON体。只需要在接口logicProcess中解这个JSON体就可以拿到值了。
这里只是一部分代码,比如怎么调用request接口还需要研究研究,只是作为记录,方便后续学习参考。

http://www.ds6.com.cn/news/89353.html

相关文章:

  • 网站推广seo系统国外搜索引擎
  • 广州网站建设建航凤凰网台湾资讯
  • 自建网站的劣势it人必看的网站
  • 贵阳建设银行网站seo怎么优化步骤
  • 做企业平台的网站有哪些方面世界杯比分
  • 吉林市网站建设优化代发新闻稿的网站
  • 上海网站制作网站建设惠州seo外包
  • 网站 案例展示南宁网站推广营销
  • 抚顺网站建设技术员招聘站长友情链接平台
  • 要怎么做网站字体不能被复制品牌策划方案ppt
  • 朔州做网站公司百度导航下载2022最新版
  • 做网站和做app哪个简单seo网站排名优化教程
  • 营业执照上有以上除网站制作百度app关键词优化
  • 网站 68百度推广客服
  • 汽车信息网站设计论文怎么推广引流客户
  • 平面图设计网站脑白金网络营销
  • 网站建设金手指15百度官网推广平台
  • 石排网站仿做类似互推商盟的推广平台
  • wordpress 图片预加载插件短视频seo系统
  • ps加dw做网站视频企业宣传网站
  • 做网站挂广告赚钱犯法吗日本域名注册网站
  • 企业形象设计调研报告网站快速优化排名
  • 辽宁建设工程信息网进不去seo1新地址在哪里
  • 武汉高端网站建设优化网络营销网
  • wordpress joonla安全如何优化推广中的关键词
  • 中国网站建设集团网站建设公司哪家好?
  • 做盈利的设计素材网站有前途seo排名优化教学
  • 一建报考专业肇庆seo按天收费
  • python 网站建设 拖拽式淘宝seo搜索引擎原理
  • 新手入门网站建设书籍湖南网站排名