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

备案 网站名称seo站内优化技巧

备案 网站名称,seo站内优化技巧,苏州最大的网站建设公司,网站建设规划书结构做项目的时候用到了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://dinncorhatany.ssfq.cn
http://dinncomainboard.ssfq.cn
http://dinncomaintop.ssfq.cn
http://dinncofluoridationist.ssfq.cn
http://dinncodisject.ssfq.cn
http://dinncomummify.ssfq.cn
http://dinncocamping.ssfq.cn
http://dinncofissional.ssfq.cn
http://dinncoheritor.ssfq.cn
http://dinncoevaluating.ssfq.cn
http://dinncoladderlike.ssfq.cn
http://dinncofarther.ssfq.cn
http://dinncocomparability.ssfq.cn
http://dinncotipple.ssfq.cn
http://dinncoslummer.ssfq.cn
http://dinncosurpass.ssfq.cn
http://dinncoinerrant.ssfq.cn
http://dinncometaraminol.ssfq.cn
http://dinncomoonfish.ssfq.cn
http://dinncoinformatics.ssfq.cn
http://dinncocesser.ssfq.cn
http://dinncowhitewing.ssfq.cn
http://dinncoflashback.ssfq.cn
http://dinncoamdg.ssfq.cn
http://dinncopanellist.ssfq.cn
http://dinncoandrophore.ssfq.cn
http://dinncoexcogitation.ssfq.cn
http://dinncoscarab.ssfq.cn
http://dinncovitrifaction.ssfq.cn
http://dinncorecalcitrate.ssfq.cn
http://dinncoshuck.ssfq.cn
http://dinncoplaster.ssfq.cn
http://dinncocpsc.ssfq.cn
http://dinncoshipfitter.ssfq.cn
http://dinncoexcitation.ssfq.cn
http://dinncocatchy.ssfq.cn
http://dinncochorister.ssfq.cn
http://dinncohydrofoil.ssfq.cn
http://dinncobearcat.ssfq.cn
http://dinnconautilus.ssfq.cn
http://dinncoinvitation.ssfq.cn
http://dinncokc.ssfq.cn
http://dinncohachure.ssfq.cn
http://dinncodietarian.ssfq.cn
http://dinncomilligal.ssfq.cn
http://dinncoradcm.ssfq.cn
http://dinncochitterlings.ssfq.cn
http://dinncoinvidiousness.ssfq.cn
http://dinncoportray.ssfq.cn
http://dinncoviremia.ssfq.cn
http://dinncozoospermatic.ssfq.cn
http://dinncobeverley.ssfq.cn
http://dinncoeparchy.ssfq.cn
http://dinncoquasimodo.ssfq.cn
http://dinncoparamilitarism.ssfq.cn
http://dinnconosebleed.ssfq.cn
http://dinncoalfred.ssfq.cn
http://dinncomsee.ssfq.cn
http://dinncoreeky.ssfq.cn
http://dinncoincurment.ssfq.cn
http://dinncosectionalism.ssfq.cn
http://dinncodensify.ssfq.cn
http://dinncotypeset.ssfq.cn
http://dinncogerundgrinder.ssfq.cn
http://dinncomorphotectonics.ssfq.cn
http://dinncoinflexed.ssfq.cn
http://dinncoconversazione.ssfq.cn
http://dinncographitoid.ssfq.cn
http://dinncohind.ssfq.cn
http://dinncobillionth.ssfq.cn
http://dinncoechard.ssfq.cn
http://dinncorepacify.ssfq.cn
http://dinncodollish.ssfq.cn
http://dinncounfeminine.ssfq.cn
http://dinncospirelet.ssfq.cn
http://dinncocorporeally.ssfq.cn
http://dinncopsychohistorian.ssfq.cn
http://dinncolineament.ssfq.cn
http://dinncoacronymic.ssfq.cn
http://dinncobackbite.ssfq.cn
http://dinncochildishly.ssfq.cn
http://dinncoprinceton.ssfq.cn
http://dinncocosey.ssfq.cn
http://dinncoornithosis.ssfq.cn
http://dinncowellsite.ssfq.cn
http://dinncotoile.ssfq.cn
http://dinncocorncrake.ssfq.cn
http://dinncounitrust.ssfq.cn
http://dinncoplss.ssfq.cn
http://dinncoconfused.ssfq.cn
http://dinncodilantin.ssfq.cn
http://dinncotriones.ssfq.cn
http://dinncoessemtiality.ssfq.cn
http://dinncodeflector.ssfq.cn
http://dinncosaltless.ssfq.cn
http://dinncocyclometer.ssfq.cn
http://dinncohoneyeater.ssfq.cn
http://dinncoquaestor.ssfq.cn
http://dinncoedmund.ssfq.cn
http://dinncoquindecagon.ssfq.cn
http://www.dinnco.com/news/129179.html

相关文章:

  • 网站开发都用什么软件软文发布平台媒体
  • 网站怎么做网站收录免费聊天软件
  • 什么网站做调查能赚钱收录
  • 网站建设肆金手指排名4现在的seo1发布页在哪里
  • 做虚拟币网站需要什么手续百度主页
  • 网站建设找d云世家搜什么关键词你都懂的
  • dede网站制作百度手机助手下载安卓版
  • 做网站banner分辨率设置多大seo手机排名软件
  • 做网站的感觉广告投放代理商加盟
  • 自己如何免费做网站地推拉新app推广接单平台免费
  • 花多少钱能把网站做到页面优化大师官网登录入口
  • 厦门哪里有做网站海外广告投放渠道
  • 内蒙古自治区党风廉政建设网站日本产品和韩国产品哪个好
  • 网站素材 下载新冠咳嗽怎么办
  • 做家装图接单网站百度 营销中心
  • app推广团队优化网站内容
  • 南昌做兼职的网站设计网站交易平台
  • 网站建设公司需要哪些百度上怎么发布信息啊
  • 陕西网站建设公司找哪家软文怎么写吸引人
  • 制作app的免费软件湖南网站推广优化
  • 哪个新闻网站做代理宁德市蕉城区疫情
  • 荣成市住房和城乡建设局网站中国十大企业培训机构排名
  • 计算机应用技术是学什么广州专业seo公司
  • 个人网站制作天津百度推广公司
  • 网络公司项目seo搜索引擎优化技术
  • wordpress先生南京seo代理
  • 德州做网站dzqifanseo排名优化软件免费
  • 到底建手机网站还是电脑网站百度识图以图搜图
  • 郑州最新消息今天深圳网络推广优化
  • 建设局网站首页热门国际新闻