如何使用C ++发送GET请求?

时间:2018-10-23 18:38:25

标签: c++ http get request winsock2

我有一个API网址:

https://ru.api.riotgames.com/lol/summoner/v3/summoners/by-name/NikolayDark16?api_key=RGAPI-b2971736-9178-4559-a0d9-7d166093865c

当我尝试向其发出GET请求时,响应为302 Moved Temporarily

我的要求是:

std::string write_buf = "GET /lol/summoner/v3/summoners/by-name/NikolayDark16?api_key=RGAPI-b2971736-9178-4559-a0d9-7d166093865c HTTP/1.1\r\n"
    "Host: www.riotgames.com\r\n"
    "Connection: close\r\n"
    "\r\n";

如果我改用Host www.ru.api.riotgames.com,则响应为400 bad request

1 个答案:

答案 0 :(得分:0)

302响应是重定向到另一个URL。只需将同一请求重新发送到响应的Location标头中指定的URL。

对于400响应,在请求的Host标头中指定的正确主机名是ru.api.riotgames.com(前面没有www.)。并且不要忘记:之后的Host

std::string write_buf = "GET /lol/summoner/v3/summoners/by-name/NikolayDark16?api_key=RGAPI-b2971736-9178-4559-a0d9-7d166093865c HTTP/1.1\r\n"
    "Host: ru.api.riotgames.com\r\n"
    "Connection: close\r\n"
    "\r\n";