vs2013下使用cpp-netlib遇到一个问题

发布于 2021-12-04 20:56:48 字数 1488 浏览 827 评论 1

各位前辈,最近需要使用到cpp-netlib这个库,安装完这个库后,我使用官方给得例子运行后发现,没办法进行http通信,get和post都没有返回任何东西。不知道,有没有遇到过类似情款,或者知道答案的能告诉我一下,谢谢

#include <boost/network/protocol/http/client.hpp>
#include <boost/network/uri.hpp>
#include <string>
#include <fstream>
#include <iostream>

namespace http = boost::network::http;
namespace uri = boost::network::uri;

namespace {
std::string get_filename(const uri::uri &url) {
    std::string path = uri::path(url);
    std::size_t index = path.find_last_of('/');
    std::string filename = path.substr(index + 1);
    return filename.empty()? "index.html" : filename;
}
} // namespace

int
main(int argc, char *argv[]) {
    if (argc != 2) {
        std::cerr << "Usage: " << argv[0] << " url" << std::endl;
        return 1;
    }

    try {
        http::client client;
        http::client::request request(argv[1]);
        http::client::response response = client.get(request);

        std::string filename = get_filename(request.uri());
        std::cout << "Saving to: " << filename << std::endl;
        std::ofstream ofs(filename.c_str());
        ofs << static_cast<std::string>(body(response)) << std::endl;
    }
    catch (std::exception &e) {
        std::cerr << e.what() << std::endl;
        return 1;
    }

    return 0;
}



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

左岸枫 2021-12-05 07:06:59

建议你可以通过抓包先定位问题方向:

1、数据请求有没有发送出去?

    1.1、如果没发送,那么就检查发送相关代码。检查网络有没有问题。

2、如果发送了,那么服务器有没有给响应?

    2.1、如果没有响应<!!!一般不可能!!!>,那么是服务器有问题。那么,可以用浏览器+相同的url来试试,看看url是不是有问题

    2.2、如果有响应,那么就是接收数据的地方有问题,检查接收数据相关代码。

有了一定的方向,可以缩小排查范围。定位问题,可以不断的缩小范围

 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文