本项目翻译自Node.js项目Binaryify/NeteaseCloudMusicApi
更新尽量与原项目同步,实现了大部分接口;支持跨语言调用,支持跨平台编译,支持多种编译器编译
使用方式参考原项目文档,参数与返回结果与原项目完全一致;支持设置Http服务器(需要Qt6.4及以上)
可参考文档API 参考
该类实现了API的cookie管理;支持Qt反射调用
通过对应方法字符串调用
#include "apihelper.h"
ApiHelper helper;
qDebug() << helper.invoke("lyric_new", { { "id", "1408586353" } });
传入Url调用
ApiHelper helper;
qDebug() << helper.invokeUrl("/song/url/v1?id=2058263032, 2057797340&level=exhigh");
qDebug() << helper.invokeUrl("http://localhost:3000/activate/init/profile");
若无需保存cookie,可直接使用该类,直接调用类函数; 支持Qt反射调用,所有方法均注册至Qt元对象系统中
#include "module.h"
NeteaseCloudMusicApi api;
qDebug() << api.lyric_new({ { "id", "1408586353" } });
动态库提供C接口,开放给Python、Java和C#等支持与C语言交互的语言调用
/**
* @brief 反射调用API的成员函数。
* @param memberName 调用成员函数的名称
* @param value 参数的JSON格式字符串
* @return 调用结果的JSON格式字符串
*/
const char* invoke(char* memberName, char* value);
调用例子参考跨语言调用
在CMakeLists.txt文件中加上
set(LIBRARY_DIR "${PROJECT_SOURCE_DIR}/QCloudMusicApi")
# 添加头文件路径
include_directories(${LIBRARY_DIR}/include)
# 添加库文件路径
link_directories(${LIBRARY_DIR}/bin)
在CMakeLists.txt文件中加上
add_subdirectory(QCloudMusicApi)
add_executable(${PROJECT_NAME}
./QCloudMusicApi/QCloudMusicApi/apihelper.h
main.cpp
)
target_compile_definitions(${PROJECT_NAME} PRIVATE QCLOUDMUSICAPI_LIBRARY)
target_link_libraries(${PROJECT_NAME} QCloudMusicApi)
引用头文件
#include "QCloudMusicApi/QCloudMusicApi/apihelper.h"
git clone --recursive https://github.com/s12mmm3/QCloudMusicApi.git
cd QCloudMusicApi
cmake -B build
cmake --build build -j