{"id":23275834,"url":"https://github.com/javapuppteernodejs/hcaptcha-java","last_synced_at":"2026-01-18T09:01:43.385Z","repository":{"id":252177908,"uuid":"839659759","full_name":"javapuppteernodejs/hcaptcha-java","owner":"javapuppteernodejs","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-08T04:29:32.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T11:46:11.185Z","etag":null,"topics":["captcha-code","hcaptcha","hcaptcha-api","hcaptcha-bypass","hcaptcha-challenger","hcaptcha-enterprise-solver","hcaptcha-solver","hcaptcha-solver-api","hcaptcha-solver-brazilian","hcaptcha-solver-bypass","hcaptcha-solver-free","hcaptcha-solver-nodejs"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javapuppteernodejs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-08T04:28:57.000Z","updated_at":"2024-08-08T04:30:47.000Z","dependencies_parsed_at":"2024-08-08T06:29:30.849Z","dependency_job_id":null,"html_url":"https://github.com/javapuppteernodejs/hcaptcha-java","commit_stats":null,"previous_names":["javapuppteernodejs/hcaptcha-java"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/javapuppteernodejs/hcaptcha-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Fhcaptcha-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Fhcaptcha-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Fhcaptcha-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Fhcaptcha-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javapuppteernodejs","download_url":"https://codeload.github.com/javapuppteernodejs/hcaptcha-java/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Fhcaptcha-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28534154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["captcha-code","hcaptcha","hcaptcha-api","hcaptcha-bypass","hcaptcha-challenger","hcaptcha-enterprise-solver","hcaptcha-solver","hcaptcha-solver-api","hcaptcha-solver-brazilian","hcaptcha-solver-bypass","hcaptcha-solver-free","hcaptcha-solver-nodejs"],"created_at":"2024-12-19T21:16:44.536Z","updated_at":"2026-01-18T09:01:43.346Z","avatar_url":"https://github.com/javapuppteernodejs.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Resolva hCaptcha em C++: Um Guia Completo\n\n\n![](https://assets.capsolver.com/prod/images/post/2024-08-08/e232bdf8-fb76-4e77-9502-08e35c0facb1.png)\n\n## Introdução\n\n**hCaptcha** é um serviço CAPTCHA popular projetado para proteger sites contra bots e abuso automatizado. Ele apresenta aos usuários desafios que são fáceis para humanos resolverem, mas difíceis para sistemas automatizados. Esses desafios podem incluir identificar objetos em imagens ou resolver quebra-cabeças.\n\nO principal objetivo do hCaptcha é garantir que as interações nos sites sejam realizadas por pessoas reais, não por scripts automatizados ou bots. Ele atua como um guardião para impedir submissões e interações automatizadas, melhorando tanto a segurança quanto a experiência do usuário.\n\n## Por que Resolver hCaptcha com C++?\n\nC++ é uma linguagem de programação poderosa, conhecida por seu desempenho e eficiência. Ela é comumente usada em cenários onde a velocidade e o gerenciamento de recursos são críticos, como no desenvolvimento de jogos, computação de alto desempenho e programação de sistemas. Aqui estão algumas razões pelas quais resolver o hCaptcha com C++ pode ser preferível:\n\n1. **Desempenho**: C++ oferece controle detalhado sobre os recursos do sistema e pode executar tarefas com overhead mínimo, tornando-se adequado para cenários que exigem alto desempenho e velocidade.\n\n2. **Integração com Sistemas Existentes**: Muitos sistemas e aplicações legadas são construídos usando C++. Se você está trabalhando em um ambiente desse tipo, usar C++ para resolver o hCaptcha pode ser uma escolha natural para manter a consistência.\n\n3. **Controle de Baixo Nível**: C++ proporciona controle de baixo nível sobre hardware e recursos do sistema, o que pode ser vantajoso para criar soluções altamente otimizadas.\n\n4. **Compatibilidade**: C++ pode se conectar com várias APIs e bibliotecas, possibilitando a integração de serviços de terceiros, como o CapSolver, para resolver CAPTCHAs.\n\n## Visão Geral do Guia\n\nNeste guia, exploraremos como resolver hCaptcha usando C++ interagindo com a [API CapSolver](https://www.capsolver.com/?utm_source=official\u0026utm_medium=blog\u0026utm_campaign=hc). Esse processo envolve criar uma tarefa para o desafio hCaptcha e, em seguida, recuperar o resultado dessa tarefa. Utilizaremos a biblioteca `cpr` para fazer solicitações HTTP e a biblioteca `jsoncpp` para analisar dados JSON.\n\nSeguindo este tutorial, você aprenderá a:\n1. Configurar um projeto C++ com as bibliotecas necessárias.\n2. Criar uma tarefa para resolver um desafio hCaptcha.\n3. Recuperar o resultado da tarefa e usá-lo em sua aplicação.\n\nSeja integrando a solução do hCaptcha em uma aplicação C++ existente ou desenvolvendo uma nova ferramenta, este guia fornecerá o conhecimento e o código necessários para atingir seus objetivos de forma eficiente.\n\n## Resolvendo hCaptcha em C++\n\n### Pré-requisitos\n\nAntes de começarmos, certifique-se de ter as seguintes bibliotecas instaladas:\n\n1. **cpr**: Uma biblioteca HTTP para C++.\n2. **jsoncpp**: Uma biblioteca C++ para análise de JSON.\n\nVocê pode instalá-las usando [vcpkg](https://github.com/microsoft/vcpkg):\n\n```bash\nvcpkg install cpr jsoncpp\n```\n\n### Passo 1: Configurando Seu Projeto\n\nCrie um novo projeto C++ e inclua os cabeçalhos necessários para `cpr` e `jsoncpp`.\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003ccpr/cpr.h\u003e\n#include \u003cjson/json.h\u003e\n#include \u003cthread\u003e\n#include \u003cchrono\u003e\n```\n\n### Passo 2: Definir Funções para Criar e Obter Resultados de Tarefas\n\nDefiniremos duas funções principais: `createTask` e `getTaskResult`.\n\n1. **createTask**: Esta função cria uma tarefa hCaptcha.\n2. **getTaskResult**: Esta função recupera o resultado da tarefa criada.\n\nAqui está o código completo:\n\n```cpp\n#include \u003ciostream\u003e\n#include \u003ccpr/cpr.h\u003e\n#include \u003cjson/json.h\u003e\n#include \u003cthread\u003e\n#include \u003cchrono\u003e\n\nstd::string createTask(const std::string\u0026 apiKey, const std::string\u0026 websiteURL, const std::string\u0026 websiteKey) {\n    Json::Value requestBody;\n    requestBody[\"clientKey\"] = apiKey;\n    requestBody[\"task\"][\"type\"] = \"HCaptchaTaskProxyless\";\n    requestBody[\"task\"][\"websiteURL\"] = websiteURL;\n    requestBody[\"task\"][\"websiteKey\"] = websiteKey;\n\n    Json::StreamWriterBuilder writer;\n    std::string requestBodyStr = Json::writeString(writer, requestBody);\n\n    cpr::Response response = cpr::Post(\n        cpr::Url{\"https://api.capsolver.com/createTask\"},\n        cpr::Body{requestBodyStr},\n        cpr::Header{{\"Content-Type\", \"application/json\"}}\n    );\n\n    Json::CharReaderBuilder reader;\n    Json::Value responseBody;\n    std::string errs;\n    std::istringstream s(response.text);\n    std::string taskId;\n\n    if (Json::parseFromStream(reader, s, \u0026responseBody, \u0026errs)) {\n        if (responseBody[\"errorId\"].asInt() == 0) {\n            taskId = responseBody[\"taskId\"].asString();\n        } else {\n            std::cerr \u003c\u003c \"Error: \" \u003c\u003c responseBody[\"errorCode\"].asString() \u003c\u003c std::endl;\n        }\n    } else {\n        std::cerr \u003c\u003c \"Failed to parse response: \" \u003c\u003c errs \u003c\u003c std::endl;\n    }\n\n    return taskId;\n}\n\nstd::string getTaskResult(const std::string\u0026 apiKey, const std::string\u0026 taskId) {\n    Json::Value requestBody;\n    requestBody[\"clientKey\"] = apiKey;\n    requestBody[\"taskId\"] = taskId;\n\n    Json::StreamWriterBuilder writer;\n    std::string requestBodyStr = Json::writeString(writer, requestBody);\n\n    while (true) {\n        cpr::Response response = cpr::Post(\n            cpr::Url{\"https://api.capsolver.com/getTaskResult\"},\n            cpr::Body{requestBodyStr},\n            cpr::Header{{\"Content-Type\", \"application/json\"}}\n        );\n\n        Json::CharReaderBuilder reader;\n        Json::Value responseBody;\n        std::string errs;\n        std::istringstream s(response.text);\n\n        if (Json::parseFromStream(reader, s, \u0026responseBody, \u0026errs)) {\n            if (responseBody[\"status\"].asString() == \"ready\") {\n                return responseBody[\"solution\"][\"gRecaptchaResponse\"].asString();\n            } else if (responseBody[\"status\"].asString() == \"processing\") {\n                std::cout \u003c\u003c \"Task is still processing, waiting for 5 seconds...\" \u003c\u003c std::endl;\n                std::this_thread::sleep_for(std::chrono::seconds(5));\n            } else {\n                std::cerr \u003c\u003c \"Error: \" \u003c\u003c responseBody[\"errorCode\"].asString() \u003c\u003c std::endl;\n                break;\n            }\n        } else {\n            std::cerr \u003c\u003c \"Failed to parse response: \" \u003c\u003c errs \u003c\u003c std::endl;\n            break;\n        }\n    }\n\n    return \"\";\n}\n\nint main() {\n    std::string apiKey = \"YOUR_API_KEY\";\n    std::string websiteURL = \"https://example.com\";\n    std::string websiteKey = \"SITE_KEY\";\n\n    std::string taskId = createTask(apiKey, websiteURL, websiteKey);\n    if (!taskId.empty()) {\n        std::cout \u003c\u003c \"Task created successfully. Task ID: \" \u003c\u003c taskId \u003c\u003c std::endl;\n        std::string hcaptchaResponse = getTaskResult(apiKey, taskId);\n        std::cout \u003c\u003c \"hCaptcha Response: \" \u003c\u003c hcaptchaResponse \u003c\u003c std::endl;\n    } else {\n        std::cerr \u003c\u003c \"Failed to create task.\" \u003c\u003c std::endl;\n    }\n\n    return 0;\n}\n```\n\n### Explicação\n\n1. **Função createTask**: Esta função constrói um corpo de solicitação JSON com os parâmetros necessários (`apiKey`, `websiteURL`, `websiteKey`) e o envia para a API CapSolver para criar uma tarefa hCaptcha. Ela analisa a resposta para obter o `taskId`.\n\n2. **Função getTaskResult**: Esta função verifica repetidamente o status da tarefa criada usando o `taskId` até que a tarefa seja concluída. Uma vez concluída, ela recupera e retorna a resposta do hCaptcha.\n\n3. **Função main**: A função principal inicializa as variáveis necessárias (`apiKey`, `websiteURL`, `websiteKey`), chama `createTask` para obter um `taskId` e, em seguida, chama `getTaskResult` para obter a solução do hCaptcha.\n\n### Conclusão\n\nEste guia demonstrou como resolver hCaptcha em C++ usando a API CapSolver. Seguindo os passos acima, você pode integrar a solução do hCaptcha em suas aplicações C++. Certifique-se de tratar as chaves da API e outras informações sensíveis de maneira segura na sua implementação real.\n\nSinta-se à vontade para personalizar e expandir o código para atender aos seus requisitos específicos. Boa programação!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavapuppteernodejs%2Fhcaptcha-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavapuppteernodejs%2Fhcaptcha-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavapuppteernodejs%2Fhcaptcha-java/lists"}