57

二维码(QRCode)生成

请求参数
参数名 必填 类型 默认 可选 说明
token string 用户身份凭证(个人中心获取)
text string 要编码为二维码的内容
frame int 1 1~10 边框大小(1-10)
e string L L、M、Q、H 纠错级别(L/M/Q/H)
size string 200 二维码尺寸(50-800)
返回参数
参数名 类型 说明
code int 状态码
msg string 提示信息
返回示例

【JSON】格式预览

暂无返回示例

【文本】格式预览

暂无返回示例

【图像】格式预览

图片预览

【音频】格式预览

【视频】格式预览

状态码-接口
code 说明
200 请求成功
状态码-服务器
code 说明
500 服务器错误
501 请求接口不存在
502 请求接口已下架
503 请求接口维护中
504 缺少请求token参数
505 请求token不存在
506 请求token已被封禁
507 请求token额度不足
508 今日请求token已达上限
509 请求ip不在token白名单内
529 请求过于频繁
请求接口
提供部分热门编程语言的请求示例dome

【PHP】示例代码dome

/**
 * API请求DEMO-PHP
 * 
 * 本demo支持GET与POST请求。
 */

//你申请的token密钥
$API_TOKEN = '你账号的请求token密钥,可前往个人中心查看';

//API接口地址
$API_URL = 'https://harmonyapi.cn/api/qrcode';

$get_post_data = array(
    //接口参数,一行一个,可按照API文档-请求参数的参数填写,其中token为必填参数。
    'token' => $API_TOKEN,
    '参数名' => '参数值',
);

/*发起请求API接口:
第1个参数:API接口地址URL,跟上面的同名变量相对应,无需更改。
第2个参数:API接口参数数组,跟上面的同名变量相对应,无需更改。
第3个参数:请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
 */
$resdata = api::send($API_URL, $get_post_data, 'GET');  //发起请求,注意这里要选择接口支持的协议,默认GET,可选POST

//打印请求结果
print($resdata);
///////////////你的业务代码可写在这里处理API返回的数据

/**
 * API请求类
 */
class api
{
    public static function send($API_URL, $get_post_data, $type)
    {
        $get_post_data = http_build_query($get_post_data);
        $res = self::send_curl($API_URL, $type, $get_post_data, null);
        return $res;
    }
    //封装好的CURL请求函数,支持POST|GET
    public static function send_curl($API_URL, $type, $get_post_data)
    {
        $ch = curl_init();
        if ($type == 'POST') {
            curl_setopt($ch, CURLOPT_URL, $API_URL);
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $get_post_data);
        } elseif ($type == 'GET') {
            curl_setopt($ch, CURLOPT_URL, $API_URL . '?' . $get_post_data);
        }
        curl_setopt($ch, CURLOPT_REFERER, $API_URL);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $resdata = curl_exec($ch);
        curl_close($ch);
        return $resdata;
    }
}

【JavaScript】示例代码dome

/**
 * API请求DEMO-JavaScript
 * 
 * 本demo支持GET与POST请求。
 */

 //jQuery-Ajax
$.ajax({
    url: 'https://harmonyapi.cn/api/qrcode',
    data: {
        //接口参数,一行一个,可按照API文档-请求参数的参数填写,其中token为必填参数。
        token: '你账号的请求token密钥,可前往个人中心查看',
        参数名: '参数值',

    },
    type: 'GET', //请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
    dataType: 'json',
    success: function(data) {
        console.log(data); //请求成功,输出结果到控制台
    },
    timeout: 3000, //超时时间
    error: function(data) {
        console.log('请求失败'); //失败处理
    }
});

【NodeJs】示例代码dome

/**
 * API请求DEMO-NodeJs
 * 
 * 本demo支持GET与POST请求。
 */

const https = require('https');
const querystring = require('querystring');

// 定义请求选项
const options = {
  hostname: 'https://harmonyapi.cn/',
  path: 'api/qrcode',
  method: 'GET'
};

// 发送GET请求
https.get(options, res => {
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', d => {
    process.stdout.write(d);
  });
}).on('error', error => {
  console.error(error);
});

// 发送POST请求
const postData = querystring.stringify({
    //接口参数,一行一个,可按照API文档-请求参数的参数填写,其中token为必填参数。
  'token': '你账号的请求token密钥,可前往个人中心查看',
  '参数名': '参数值'
});

const postOptions = {
  hostname: 'https://harmonyapi.cn/',
  path: 'api/qrcode',
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': Buffer.byteLength(postData)
  }
};

const postReq = https.request(postOptions, res => {
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', d => {
    process.stdout.write(d);
  });
});

postReq.on('error', error => {
  console.error(error);
});

postReq.write(postData);
postReq.end();
/*
这个示例代码使用Node.js内置的`https`模块进行HTTP请求。

首先定义了一个GET请求的选项,然后使用`https.get()`方法发送了GET请求。在响应流上注册回调函数,以便在收到响应数据时将其输出到控制台。在出现错误时,也注册了错误处理程序。

类似地,我们也定义了一个POST请求选项,并使用`https.request()`方法发送它。需要在请求头中包含适当的`Content-Type`和`Content-Length`以确保服务器可以正确解析请求体。请求体由`write()`方法写入,并在请求结束时通过调用`end()`方法通知请求对象已经完成。

注意,此示例默认使用`querystring`模块将数据作为x-www-form-urlencoded格式进行编码。如果需要使用其他格式(如JSON),则需要相应地更改请求头和请求体的编码方式。

另外,为了确保HTTPS请求的安全性,您也可以添加其他选项,例如验证服务器证书、设置代理等。
*/

【C】示例代码dome

/**
 * API请求DEMO-C
 * 
 * 本demo支持GET与POST请求。
 */

```
#include 
#include 
#include 
#include  // 需要安装curl库

// API地址
const char* url = "https://harmonyapi.cn/";

// GET请求
void getRequest(CURL* curl) {
    CURLcode res;

    // 设置URL
    curl_easy_setopt(curl, CURLOPT_URL, url);

    // 执行请求
    res = curl_easy_perform(curl);

    if(res != CURLE_OK) {
        fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
    }
}

// POST请求
void postRequest(CURL* curl) {
    CURLcode res;

    // 设置URL
    curl_easy_setopt(curl, CURLOPT_URL, url);

    // 设置POST数据
    const char* postData = "token=你账号的请求token密钥,可前往个人中心查看&参数名=参数值";
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData);

    // 执行请求
    res = curl_easy_perform(curl);

    if(res != CURLE_OK) {
        fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
    }
}

int main() {
    CURL* curl;
    CURLcode res;

    // 初始化curl
    curl = curl_easy_init();

    if(curl) {
        // 设置SSL验证
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);

        // GET请求
        getRequest(curl);

        // POST请求
        postRequest(curl);

        // 清理curl资源
        curl_easy_cleanup(curl);
    }

    return 0;
}
```

这个示例代码使用了libcurl库进行HTTP请求。

首先,需要设置API地址。然后,基于`CURL`结构体创建curl句柄,并使用`curl_easy_setopt()`函数设置选项。这里设置了SSL验证,以确保请求的安全性。

在GET请求中,只需将URL设置为选项,然后调用`curl_easy_perform()`函数执行请求即可。

在POST请求中,还需要将POST数据作为字符串传递给`CURLOPT_POSTFIELDS`选项。

需要注意的是,为了避免内存泄漏,应该在使用完curl句柄之后调用`curl_easy_cleanup()`函数进行清理。

除了上述示例代码外,libcurl库还提供了更多高级选项,例如处理HTTP头、上传文件等。可以参考文档进行更详细的了解。

【C++】示例代码dome

/**
 * API请求DEMO-C++
 * 
 * 本demo支持GET请求。
 */

```
#include 
#include 

int main() {
    CURL *curl;
    CURLcode res;
    std::string url = "https://harmonyapi.cn/api/qrcode?token=你账号的请求token密钥,可前往个人中心查看";
    std::string response;

    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, [](char *ptr, size_t size, size_t nmemb, void *userdata) -> size_t {
            std::string *response = reinterpret_cast(userdata);
            response->append(ptr, size * nmemb);
            return size * nmemb;
        });
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

        res = curl_easy_perform(curl);
        if (res == CURLE_OK) {
            std::cout << "Response: " << response << std::endl;
        } else {
            std::cerr << "Error: " << curl_easy_strerror(res) << std::endl;
        }
        curl_easy_cleanup(curl);
    }

    return 0;
}
```

解释:
1. 引入需要的头文件:``用于输出结果,``用于使用libcurl库。
2. 定义需要请求的API接口的URL和存储响应数据的字符串变量。
3. 初始化一个CURL对象。
4. 设置CURL对象的参数:请求的URL(`CURLOPT_URL`)、是否跟随重定向(`CURLOPT_FOLLOWLOCATION`)、响应数据的写入函数(`CURLOPT_WRITEFUNCTION`)和响应数据的写入位置(`CURLOPT_WRITEDATA`)。
5. 发送HTTP请求并获取响应数据,判断返回状态码是否OK。
6. 清理CURL对象。

运行该程序会发送GET请求到指定的API接口URL,并在程序终止前将响应数据输出到终端。注意,在使用该示例代码之前需要安装libcurl库。

【C#】示例代码dome

/**
 * API请求DEMO-C#
 * 
 * 本demo支持GET请求。
 */

```
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
    static async Task Main(string[] args) {
        HttpClient client = new HttpClient();
        string url = "https://harmonyapi.cn/api/qrcode?token=你账号的请求token密钥,可前往个人中心查看";
        HttpResponseMessage response = await client.GetAsync(url);
        if (response.IsSuccessStatusCode) {
            string responseBody = await response.Content.ReadAsStringAsync();
            Console.WriteLine("Response: " + responseBody);
        } else {
            Console.WriteLine("Error: " + response.StatusCode);
        }
    }
}
```

解释:

1. 引用需要的命名空间:`System.Net.Http`用于使用HttpClient类,`System.Threading.Tasks`用于异步执行请求操作。

2. 创建一个HttpClient对象。

3. 定义需要请求的API接口的URL。

4. 发送GET请求到指定的API接口URL,并获取响应结果。

5. 判断响应状态是否成功,如果成功则读取响应数据(使用ReadAsStringAsync方法),否则输出错误信息(使用StatusCode属性)。

运行该程序会发送GET请求到指定的API接口URL,并在程序终止前将响应数据输出到终端。注意,在使用该示例代码之前需要安装.NET Framework或.NET Core SDK。

【JAVA】示例代码dome

/**
 * API请求DEMO-JAVA
 * 
 * 本demo支持GET请求。
 */

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.URL; 
 
public class Test { 
    public static void main(String[] args) { 
        try { 
            URL url = new URL("https://harmonyapi.cn/api/qrcode?token=你账号的请求token密钥,可前往个人中心查看"); 
            HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
 
            // 设置请求方式
            connection.setRequestMethod("GET"); 
            connection.connect(); 
 
            // 获取响应码
            int responseCode = connection.getResponseCode(); 
            if (responseCode == HttpURLConnection.HTTP_OK) { 
                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
                String line; 
                while ((line = reader.readLine()) != null) { 
                    // 读取到的内容给line变量 
                    System.out.println(line); 
                } 
                reader.close(); 
            } 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 
}

【GO】示例代码dome

/**
 * API请求DEMO-GO
 * 
 * 本demo支持GET请求。
 */

 package main
 
 import (
     "fmt"
     "io/ioutil"
     "net/http"
 )
  
 func main() {
     // 发起一个GET请求
     resp, err := http.Get("https://harmonyapi.cn/api/qrcode?token=你账号的请求token密钥,可前往个人中心查看")
     if err != nil {
         fmt.Println("http get error", err)
         return
     }
  
     // 读取响应结果
     result, err := ioutil.ReadAll(resp.Body)
     if err != nil {
         fmt.Println("http read error", err)
         return
     }
  
     // 关闭响应结果
     defer resp.Body.Close()
  
     fmt.Println(string(result))
 } 

【Python】示例代码dome


 # API请求DEMO-Python
 # 
 # 本demo支持POST请求。
 
```
# 导入requests库
import requests
 
# 设置url
url = 'https://harmonyapi.cn/api/qrcode'
 
# 发送post请求
response = requests.post(url, data={
    #接口参数,一行一个,可按照API文档-请求参数的参数填写,其中token为必填参数。
    'token': '你账号的请求token密钥,可前往个人中心查看',
    '参数名': '参数值'
})
 
# 获取响应内容
result = response.json()
 
# 打印结果
print(result)
```

【易语言】示例代码dome

/**
 * API请求DEMO-易语言
 * 
 * 本demo支持GET请求。
 */

.版本 2
.子程序 __启动窗口_创建完毕
'添加并使用《精易模块》
Send_API ()

.子程序 Send_API
.局部变量 REQU_Data, 文本型, , , 提交字符串
.局部变量 return, 文本型, , , 返回字符串
.局部变量 API_URL, 文本型, , , 接口地址
.局部变量 API_TOKEN, 文本型, , , 接口密钥

API_URL = “https://harmonyapi.cn/api/qrcode”
API_TOKEN = “你账号的请求token密钥,可前往个人中心查看”
REQU_Data = "请求参数,根据接口文档的请求参数来拼接字符串(例a=a&b=b&c=c)"
return = 编码_Utf8到Ansi (网页_访问 (API_URL + “token=” + API_TOKEN + REQU_Data, , , , , “User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36”))
输出调试文本 (return)