栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【无标题】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】

c++ 库积累
  • crow
  • curl库
      • 三级目录

crow

crow和flask都是web框架,能够快速搭建web server服务

#include "crow.h"

int main()
{
    crow::SimpleApp app;

    CROW_ROUTE(app, "/")([](){
        return "Hello world";
    });
    CROW_ROUTE(app,"/hello/")
      ([](int count){
       if (count > 100)
       return crow::response(400);
       std::ostringstream os;
       os << count << " bottles of beer!";
       return crow::response(os.str());
       });
    CROW_ROUTE(app, "/params")
       ([](const crow::request& req){
          std::ostringstream os;
          os << "Params: " << req.url_params << "nn"; 
          os << "The key 'foo' was " << (req.url_params.get("foo") == nullptr ? "not " : "") << "found.n";
          if(req.url_params.get("pew") != nullptr) {
              double countD = boost::lexical_cast(req.url_params.get("pew"));
              os << "The value of 'pew' is " <<  countD << 'n';
          }
          auto count = req.url_params.get_list("count");
          os << "The key 'count' contains " << count.size() << " value(s).n";
          for(const auto& countVal : count) {
              os << " - " << countVal << 'n';
          }
          return crow::response{os.str()};
          }); 

    app.port(18080).multithreaded().run();
}
curl库
#include 
#include 
bool getUrl(char *filename)
{
    CURL *curl;
    CURLcode res;
    FILE *fp;
    if ((fp = fopen(filename, "w")) == NULL)  // 返回结果用文件存储
        return false;
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Accept: Agent-007");
    curl = curl_easy_init();    // 初始化
    if (curl)
    {
        //curl_easy_setopt(curl, CURLOPT_PROXY, "10.99.60.201:8080");// 代理
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);// 改协议头
        curl_easy_setopt(curl, CURLOPT_URL,"http://www.baidu.com");
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); //将返回的http头输出到fp指向的文件
        curl_easy_setopt(curl, CURLOPT_HEADERDATA, fp); //将返回的html主体数据输出到fp指向的文件
        res = curl_easy_perform(curl);   // 执行
        if (res != 0) {

            curl_slist_free_all(headers);
            curl_easy_cleanup(curl);
        }
        fclose(fp);
        return true;
    }
}
bool postUrl(char *filename)
{
    CURL *curl;
    CURLcode res;
    FILE *fp;
    if ((fp = fopen(filename, "w")) == NULL)
        return false;
    curl = curl_easy_init();
    if (curl)
    {
        curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookie.txt"); // 指定cookie文件
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "&logintype=uid&u=xieyan&psw=xxx86");    // 指定post内容
        //curl_easy_setopt(curl, CURLOPT_PROXY, "10.99.60.201:8080");
        curl_easy_setopt(curl, CURLOPT_URL, " http://mail.sina.com.cn/cgi-bin/login.cgi ");   // 指定url
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
        res = curl_easy_perform(curl);
        curl_easy_cleanup(curl);
    }
    fclose(fp);
    return true;
}
int main(void)
{
    getUrl("/tmp/get.html");
    postUrl("/tmp/post.html");
}
struct curl_httppost* post;
struct curl_httpposr* last;
curl_formadd(&post,&last,CURLFROM_COPYNAME,"image_file",CURLFROM_BUFFER,"data"
,CURLFROM_BUFFERPTR,fram_encoder_str.c_str(),CURLFROM_BUFFERLENGTH,
fram_encoder.length(),CURLFROM_END);
curl_formadd(&post,&last,CURLFROM_COPYNAME,"json_str",CURLFROM_BUFFER
,CURLFROM_COPYCONTENTS,json.dump().c_str(),CURLFROM_END);
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,write_data_json);
size_t write_data_json(void* ptr,size_t size ,size_t nmeb,void* stream)
{
std::string data((const char*) ptr,(size_t)size*nmeb);
*(std::stringsream *)stream< 
三级目录
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026140.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号