QQ信息获取

分类: 注册送365体育平台 发布时间: 2025-09-13 17:49:32 作者: admin 阅读: 8683
QQ信息获取

请求限制:

免费/测试用户请求频率限制

请求频率总限制

每日请求次数总限制

1秒10次 每个免费用户的QPS总限制

5秒1次 每个用户QPS总限制

1000 (次) 每个用户每日请求总次数

其他准入要求:

账户余额/点数计费的用户,不限制每日请求次数和QPS

次数包计费的用户,不限制每日请求次数和QPS

接口地址:https://api.shwgij.com/api/qq/qqinfo

返回格式:application/json

请求方式:HTTPGET

请求示例:key=xxx&qq=要查询的QQ

声明:本接口为个人学习测试接口,信息来源为腾讯官方非开放API接口,严禁违法违规、泄露他人隐私。

如果请求时提示认证过期,需要使用手机QQ扫描以下二维码,进行一次认证即可。

注意,请认真阅读以下事项:

是手机QQ,是手机QQ,是手机QQ,不是微信!

以上二维码会自动更新,扫描时提示过期请重新扫描一次.

认证更新存在不超过60秒的延迟,完成后,请等待,二维码失效时,也是这样。

扫描认证时需要与服务器交换一次数据,介意请勿使用本接口。

珍惜接口资源,请求时请注意控制使用频率,使用过程中有问题可在评论区留言,或者右侧点击联系客服。

接口应用案例演示:https://api.shwgij.com/doc/26

返回示例:

返回状态码释意:

200:请求成功

201:请求成功

202:请求成功(备用线路)

400:连接远程服务器失败

403:密钥key不正确

500:接口内部错误

PHP

JavaScript

易语言

JAVA

GO

Python

Nodejs

C

C++

C#

VB

/**

* API请求DEMO

*

* 本demo支持常见的HTTP请求方法(GET/POST/PUT/DELETE等)

*/

//基本配置

$api_key = '你的接口密钥,登录控制台后在密钥管理页面申请';

$secret_key = '';

// API请求示例:

try {

$client = new ApiClient($api_key, $secret_key);

$client->setTimeout(10);

$client->setVerifySSL(false); // 关闭SSL验证

// GET请求示例

echo "=== 开始GET请求 ===\n";

$response = $client->get('https://api.shwgij.com/api/qq/qqinfo', [

'key' => $api_key,

'key2' => '其他参数'

]);

print_r($response);

//print_r($client->getLastRequestInfo());

/*

// POST表单示例

echo "\n=== 开始POST请求 ===\n";

$response = $client->post('接口地址', [

'key' => $api_key,

'key2' => '其他参数'

]);

print_r($response);

print_r($client->getLastRequestInfo());

// POST JSON示例

echo "\n=== 开始POST JSON请求 ===\n";

$response = $client->postJson('接口地址', [

'key' => $api_key,

'key2' => '其他参数'

]);

print_r($response);

print_r($client->getLastRequestInfo());

*/

} catch (ApiClientException $e) {

echo "API请求错误: " . $e->getMessage();

if ($e->getCode() > 0) {

echo " (HTTP状态码: " . $e->getCode() . ")";

}

print_r($client->getLastRequestInfo() ?? []);

}

/**

* API客户端类

*

* 提供了一个简单的HTTP API客户端实现,支持常见的HTTP请求方法(GET/POST/PUT/DELETE等)

* 具有以下主要功能:

* - 支持 API 密钥和签名认证

* - 可配置请求超时和SSL验证

* - 支持自定义请求头

* - 支持表单和JSON格式的请求体

* - 自动解析响应结果

* - 提供详细的请求信息记录

*

* 使用示例:

* ```

* $client = new ApiClient('https://api.example.com', 'api_key', 'secret_key');

* $response = $client->get('/users', ['page' => 1]);

* ```

*

* @throws ApiClientException 当API请求失败时抛出异常

*/

class ApiClient

{

private $apiKey;

private $secretKey;

private $timeout = 30;

private $verifySSL = true;

private $lastRequestInfo = [];

private $defaultHeaders = [];

/**

* 构造函数

*

* @param string $apiKey API密钥(可选)

* @param string $secretKey 签名密钥(可选)

*/

public function __construct(string $apiKey = '', string $secretKey = '')

{

$this->apiKey = $apiKey;

$this->secretKey = $secretKey;

}

/**

* 设置请求超时时间(秒)

*/

public function setTimeout(int $seconds): self

{

$this->timeout = $seconds;

return $this;

}

/**

* 设置是否验证SSL证书

*/

public function setVerifySSL(bool $verify): self

{

$this->verifySSL = $verify;

return $this;

}

/**

* 添加默认请求头

*/

public function addDefaultHeader(string $name, string $value): self

{

$this->defaultHeaders[$name] = $value;

return $this;

}

/**

* 发送GET请求

*

* @param string $endpoint 接口端点

* @param array $query 查询参数

* @param array $headers 额外请求头

*/

public function get(string $endpoint, array $query = [], array $headers = []): array

{

return $this->request('GET', $endpoint, [

'query' => $query,

'headers' => $headers

]);

}

/**

* 发送POST请求(表单格式)

*

* @param string $endpoint 接口端点

* @param array $data POST数据

* @param array $headers 额外请求头

*/

public function post(string $endpoint, array $data = [], array $headers = []): array

{

return $this->request('POST', $endpoint, [

'form_data' => $data,

'headers' => $headers

]);

}

/**

* 发送POST请求(JSON格式)

*

* @param string $endpoint 接口端点

* @param array $data POST数据

* @param array $headers 额外请求头

*/

public function postJson(string $endpoint, array $data = [], array $headers = []): array

{

return $this->request('POST', $endpoint, [

'json' => $data,

'headers' => array_merge(['Content-Type' => 'application/json'], $headers)

]);

}

/**

* 发送PUT请求

*/

public function put(string $endpoint, array $data = [], array $headers = []): array

{

return $this->request('PUT', $endpoint, [

'json' => $data,

'headers' => $headers

]);

}

/**

* 发送DELETE请求

*/

public function delete(string $endpoint, array $data = [], array $headers = []): array

{

return $this->request('DELETE', $endpoint, [

'json' => $data,

'headers' => $headers

]);

}

/**

* 获取最后一次请求的详细信息

*/

public function getLastRequestInfo(): array

{

return $this->lastRequestInfo;

}

/**

* 基础请求方法

*/

private function request(string $method, string $endpoint, array $options = []): array

{

// 初始化cURL

$ch = curl_init();

$url = ltrim($endpoint, '/');

// 准备请求头

$headers = $this->prepareHeaders($options['headers'] ?? []);

// 处理查询参数

if (!empty($options['query'])) {

$url .= '?' . http_build_query($options['query']);

}

// 处理请求体

$postData = null;

if (isset($options['form_data'])) {

$postData = http_build_query($options['form_data']);

$headers[] = 'Content-Type: application/x-www-form-urlencoded';

} elseif (isset($options['json'])) {

$postData = json_encode($options['json']);

$headers[] = 'Content-Type: application/json';

}

// 设置cURL选项

curl_setopt_array($ch, [

CURLOPT_URL => $url,

CURLOPT_RETURNTRANSFER => true,

CURLOPT_CUSTOMREQUEST => $method,

CURLOPT_HTTPHEADER => $headers,

CURLOPT_TIMEOUT => $this->timeout,

CURLOPT_SSL_VERIFYPEER => $this->verifySSL,

CURLOPT_SSL_VERIFYHOST => $this->verifySSL,

CURLOPT_HEADER => true,

]);

if ($method !== 'GET' && $postData !== null) {

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

}

// 执行请求

$response = curl_exec($ch);

$error = curl_error($ch);

$info = $this->lastRequestInfo = curl_getinfo($ch);

curl_close($ch);

// 处理错误

if ($error) {

throw new ApiClientException("cURL请求失败: " . $error);

}

// 分离响应头和响应体

$headerSize = $info['header_size'];

$responseHeaders = substr($response, 0, $headerSize);

$responseBody = substr($response, $headerSize);

// 解析响应

$result = json_decode($responseBody, true) ?? $responseBody;

// 检查HTTP状态码

if ($info['http_code'] >= 400) {

$errorMsg = is_array($result) ? ($result['message'] ?? $responseBody) : $responseBody;

throw new ApiClientException("API请求失败: " . $errorMsg, $info['http_code']);

}

return [

'status' => $info['http_code'],

'headers' => $this->parseHeaders($responseHeaders),

'data' => $result

];

}

/**

* 准备请求头(自动添加签名)

*/

private function prepareHeaders(array $headers): array

{

// 合并默认头

$headers = array_merge($this->defaultHeaders, $headers);

// 添加签名头

if ($this->apiKey && $this->secretKey) {

$timestamp = time();

$signString = "key={$this->apiKey}×tamp={$timestamp}";

$signature = hash_hmac('sha256', $signString, $this->secretKey);

$headers['X-Api-Key'] = $this->apiKey;

$headers['X-Api-Timestamp'] = $timestamp;

$headers['X-Api-Sign'] = $signature;

}

// 转换为cURL格式

$curlHeaders = [];

foreach ($headers as $name => $value) {

$curlHeaders[] = "$name: $value";

}

return $curlHeaders;

}

/**

* 解析响应头

*/

private function parseHeaders(string $headers): array

{

$parsed = [];

foreach (explode("\r\n", $headers) as $i => $line) {

if ($i === 0) {

$parsed['HTTP_CODE'] = $line;

} else {

$parts = explode(': ', $line, 2);

if (count($parts) === 2) {

$parsed[$parts[0]] = $parts[1];

}

}

}

return $parsed;

}

}

class ApiClientException extends \Exception

{

// 自定义异常类

}

//jQuery-Ajax

$.ajax({

url: 'https://api.shwgij.com/api/qq/qqinfo',

data: {

//接口参数,一行一个,可按照接口文档-请求参数 的参数填写,或者直接复制开发工具下面的测试代码。

key: '你的接口密钥,登录控制台后在密钥管理页面申请',

参数名: '参数值',

},

type: 'GET', //请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。

dataType: 'json',

success: function(data) {

console.log(data); //请求成功,输出结果到控制台

},

timeout: 3000, //超时时间

error: function(data) {

console.log('请求失败'); //失败处理

}

});

子程序名

返回值类型

公开

备 注

__启动窗口_创建完毕

' 添加并使用《精易模块》Send_API ()

子程序名

返回值类型

公开

备 注

Send_API

变量名

类 型

静态

数组

备 注

REQU_Data

文本型

提交字符串

return

文本型

返回字符串

API_URL

文本型

接口地址

API_KEY

文本型

接口密钥

API_URL = “https://api.shwgij.com/api/qq/qqinfo”API_KEY = “你的接口密钥,登录控制台后在密钥管理页面申请”REQU_Data = "请求参数,根据接口文档的请求参数来拼接字符串(例a=a&b=b&c=c)"return = 编码_Utf8到Ansi (网页_访问 (API_URL + “?key=” + API_KEY + 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)

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://api.shwgij.com/api/qq/qqinfo?key=你的接口密钥,登录控制台后在密钥管理页面申请");

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();

}

}

}

package main

import (

"fmt"

"io/ioutil"

"net/http"

)

func main() {

// 发起一个GET请求

resp, err := http.Get("https://api.shwgij.com/api/qq/qqinfo?key=你的接口密钥,登录控制台后在密钥管理页面申请")

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))

}

```

# 导入requests库

import requests

# 设置url

url = 'https://api.shwgij.com/api/qq/qqinfo?key=你的接口密钥,登录控制台后在密钥管理页面申请'

# 发送post请求

response = requests.post(url, data={'key1': 'value1', 'key2': 'value2'})

# 获取响应内容

result = response.json()

# 打印结果

print(result)

```

// 以下是使用Node.js进行GET和POST请求API接口的示例代码:

const https = require('https');

const querystring = require('querystring');

// 定义请求选项

const options = {

hostname: 'api.shwgij.com',

path: '/api/qq/qqinfo',

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({

'key1': 'value1',

'key2': 'value2'

});

const postOptions = {

hostname: 'api.shwgij.com',

path: '/api/qq/qqinfo',

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语言进行GET和POST请求API接口的示例代码:

``` c

#include

#include

#include

#include // 需要安装curl库

// API地址

const char* url = "https://api.shwgij.com/api/qq/qqinfo";

// 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 = "key=你的接口密钥,登录控制台后在密钥管理页面申请&key1=value1";

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++请求API接口的示例代码:

```cpp

#include

#include

int main() {

CURL *curl;

CURLcode res;

std::string url = "https://api.shwgij.com/api/qq/qqinfo?key=你的接口密钥,登录控制台后在密钥管理页面申请";

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#请求API接口的示例代码:

```csharp

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://api.shwgij.com/api/qq/qqinfo?key=你的接口密钥,登录控制台后在密钥管理页面申请";

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。

以下是VB请求API接口的示例代码:

```

' 1. 引入Microsoft XML v6.0库

' 2. 创建一个XMLHTTP对象

Dim xhr As XMLHTTP

Set xhr = New XMLHTTP

' 3. 设置请求的URL、方法,以及是否异步等

xhr.Open "GET", "https://api.shwgij.com/api/qq/qqinfo?key=你的接口密钥,登录控制台后在密钥管理页面申请", False

' 4. 发送请求

xhr.send

' 5. 获取响应结果

Dim responseText As String

responseText = xhr.responseText

' 6. 输出响应结果

Debug.Print responseText

' 7. 释放资源

Set xhr = Nothing

```

在这个示例中,我们创建了一个XMLHTTP对象,用于请求API接口。我们先调用`open`方法来设置请求的URL、方法,以及是否异步。然后,我们发送请求,并使用`responseText`属性来获取响应结果。最后,我们将响应结果打印到控制台,完成操作后释放资源,以防止内存泄漏。请注意,以上示例代码为同步请求,如果想使用异步请求,需要设置第三个参数为`True`,并在请求结束时处理`OnReadyStateChange`事件。

GET

GET

发起请求

JSON提交

填写参数:增加参数

参数名

填写参数值

请求结果

请求头

响应头

完整URL

评论0

未登录

请 登录 后发表评论

相关文章

狗狗配件,讓狗狗外出也能吸引人的目光!
携程的优缺点 携程和去哪儿哪个好
网络游戏诈骗罪怎么判的
“尬聊”被拉黑后,这个浙大学生开发了一个深度学习模型