Giter Site home page Giter Site logo

zanllp / sion Goto Github PK

View Code? Open in Web Editor NEW
99.0 1.0 24.0 143 KB

A single-header, cross-platform C++ library for making asynchronous HTTP(s) Requests.

License: MIT License

C++ 97.63% CMake 2.37%
sion http cpp cpp-library httpclient async asyncio cross-platform single-header

sion's People

Contributors

git-xiaocao avatar zanllp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

sion's Issues

在Windows下编译失败

输出诸如“未定义的标识符”“语法错误”“跳过明显的函数体”等。环境:MSVC 19.30.30401

g++ 7.5.0版本编译报错

Thread model: posix
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)

报错错误如下:
/tmp/ccaD5zPb.s: Assembler messages:
/tmp/ccaD5zPb.s:7824: Error: symbol `_ZNK4sionUlvE_clEv' is already defined
...

demo代码如下:
`
#include
#define SION_DISABLE_SSL
#include "sion/sion.h"

static int req_id = 0;
static sion::Async async_thread_pool;

int main() {
std::string url;
std::string body;
int timeoutMs;
std::string content_type;
int req;

async_thread_pool.Run(
    [body, url, content_type] {
        return sion::Request()
            .SetUrl(url)
            .SetHttpMethod(sion::Method::Post)
            .SetBody(body)
            .SetHeader("Content-Type", content_type);
    },
    [req](sion::AsyncResponse async_resp) {
        // qDebug() << req << async_resp.err_msg.c_str();
    });
return 0;

}

windows vs2022编译报错

我定义了unicode编码
sion.hpp(667,1): error C2664: “INT InetPtonW(INT,PCWSTR,PVOID)”: 无法将参数 2 从“const _Elem *”转换为“PCWSTR”

`
...
auto target_ip =
enable_proxy_
? (proxy_.host.HasLetter() ? GetIpByHost(proxy_.host) : proxy_.host)
: ip_;
#ifdef _WIN32
checkstd::invalid_argument(
(InetPton(AF_INET, target_ip.c_str(), &sa) != -1), "地址转换错误");//报错,详情如上
#else
checkstd::invalid_argument(
(inet_pton(AF_INET, target_ip.c_str(), &sa) != -1), "地址转换错误");
#endif
...

`

我将sion.h导入自己的项目会报这个错误

错误 C2664
“std::basic_string<char,std::char_traits,std::allocator>::basic_string(const std::basic_string<char,std::char_traits,std::allocator> &)”: 无法将参数 1 从“_Ty”转换为“std::initializer_list<_Elem>”
WeChatHelper c:\users\sion.h 19

无法发送请求

代码:
auto resp = sion::Request()
.SetUrl("http://httpbin.org/get")
.SetHttpMethod(sion::Method::Post)
.SetBody(R"({"data": 233333,"msg":"hello world!"})")
.SetHeader("Content-Type", "application/json; charset=utf-8")
.Send();
std::cout << resp.StrBody() << std::endl;
std::cout << "done \n";
结果:
截屏2022-02-10 下午12 05 06

描述:
使用sion发送Post请求,charles 抓包,发现请求地址有问题。没有请求成功

todo

  • 编码控制
  • 长连接
  • Gzip
  • http2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.