调用gitlab api上传文件至仓库中,下面的代码不知道哪里有问题,不能实现需求。有没有朋友帮忙看看是哪里的问题,或者重新写一下
QString Url = "http://************/";
QString privateToken = "*************************";
int projectId = 15011;
QString filePath = "1.xlsx";
QString branch = "main";
QString commitMessage = "Update file";
QString content = "New content of the file";
QString apiUrl = Url + "api/v4/projects/" + QString::number(projectId) +
"/repository/files/" + filePath;
QJsonObject params;
params["branch"] = branch;
params["id"] = 150;
params["file_path"] = "1.xlsx";
params["commit_message"] = commitMessage;
params["content"] = content;
QByteArray jsonData = QJsonDocument(params).toJson();
CURL* curl = curl_easy_init();
if (curl) {
struct curl_slist* headers = nullptr;
headers = curl_slist_append(headers, ("PRIVATE-TOKEN: " + privateToken).toUtf8().constData());
curl_easy_setopt(curl, CURLOPT_URL, apiUrl.toUtf8().constData());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonData.constData());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
qDebug() << "Error: " + QString(curl_easy_strerror(res));
}
qDebug() << "File updated successfully.";
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
qDebug() << "Failed to initialize libcurl.";