欢迎您!
API文档中心
入门指南
快速接入 签名算法 调用示例
参考文档
SDK 参考 错误码速查

调用示例

以下示例以 ipquery 接口为例,演示如何发起一次完整的 POST 请求,并把返回的 JSON 赋值给对应语言的变量,最终读取业务字段。

示例假设你已将 SDK 代码保存到项目中。复制代码后,只需修改配置区的变量值即可直接运行。

  • PHP
  • Python
  • Go
  • Java
  • C#
  • Objective-C
  • cURL
<?php
/**
 * 聚合API平台 PHP 调用示例:ipquery 接口
 * 请求方式:POST
 * 接口地址:https://www.phpwc.cn/api/ipquery
 */

// 引入 SDK(从 /doc?page=sdk 复制保存为 wcapi_sdk.php)
require_once 'wcapi_sdk.php';

class MyApiService
{
    // ==================== 配置区(从用户中心获取) ====================

    private $host   = 'https://www.phpwc.cn/api/';       // 平台域名(固定值)
    private $pid    = 1000;                                    // 用户ID,登录用户中心可见
    private $appkey = 'tF9r7oQJ1dim46nM5xzBbuUaLNjf3uOA';    // API密钥,用户中心 → API设置 页面生成

    // ==================== 业务方法 ====================

    /**
     * 查询 IP 归属地
     */
    public function ipquery()
    {
        $ip = '8.8.8.8';

        // 调用 SDK 提供的 callApi() 函数
        $result = callApi($this->host, $this->pid, $this->appkey, 'ipquery', ['ip' => $ip]);

        // code === 0 表示成功,其他值为失败
        if ($result['code'] !== 0) {
            echo "调用失败:{$result['desc']}\n";
            return;
        }

        // 从 data 字段读取业务数据
        $data = $result['data'];
        echo "IP:      {$data['ip']}\n";
        echo "国家:    {$data['nation']}\n";
        echo "省份:    {$data['province']}\n";
        echo "城市:    {$data['city']}\n";
        echo "运营商:  {$data['isp']}\n";
    }
}

// 使用
$api = new MyApiService();
$api->ipquery();
# 聚合API平台 Python 调用示例:ipquery 接口
# 请求方式:POST
# 接口地址:https://www.phpwc.cn/api/ipquery

# 从 SDK 文件导入 call_api 函数
# wcapi_sdk.py 中定义了签名和 POST 请求逻辑
from wcapi_sdk import call_api

# ==================== 配置区(从用户中心获取) ====================

HOST   = "https://www.phpwc.cn/api/"       # 平台域名(固定值)
PID    = "1000"                                 # 用户ID,登录用户中心可见
APPKEY = "tF9r7oQJ1dim46nM5xzBbuUaLNjf3uOA"    # API密钥,用户中心 → API设置 页面生成

# ==================== 调用 ipquery ====================

# 查询 IP 归属地,call_api() 由 SDK 提供
biz_params = {"ip": "8.8.8.8"}
response = call_api(HOST, PID, APPKEY, "ipquery", biz_params)

# ==================== 处理响应 ====================

# code === 0 表示成功,非 0 表示失败,失败原因在 desc 字段中
if response.get("code") != 0:
    print(f"调用失败:{response.get('desc')}")
    exit()

# 从 data 字段读取业务数据
ip_info = response.get("data", {})
print(f"IP:      {ip_info.get('ip')}")
print(f"国家:    {ip_info.get('nation')}")
print(f"省份:    {ip_info.get('province')}")
print(f"城市:    {ip_info.get('city')}")
print(f"运营商:  {ip_info.get('isp')}")

# ==================== 查看完整返回 ====================

import json
print(json.dumps(response, ensure_ascii=False, indent=2))
package main

import (
	"encoding/json"   // 用于格式化输出完整返回 JSON
	"fmt"             // 用于输出结果
)

// 聚合API平台 Go 调用示例:ipquery 接口
// 请求方式:POST
// 接口地址:https://www.phpwc.cn/api/ipquery
// 假设 SDK 文件 wcapi_sdk.go 已和本文件在同一 package 下

func main() {
	// ==================== 配置区(从用户中心获取) ====================

	host   := "https://www.phpwc.cn/api/"       // 平台域名(固定值)
	pid    := "1000"                                 // 用户ID,登录用户中心可见
	appkey := "tF9r7oQJ1dim46nM5xzBbuUaLNjf3uOA"    // API密钥,用户中心 → API设置 页面生成

	// ==================== 调用 ipquery ====================

	// 查询 IP 归属地,CallAPI() 由 SDK 提供
	bizParams := map[string]string{"ip": "8.8.8.8"}
	response, err := CallAPI(host, pid, appkey, "ipquery", bizParams)
	if err != nil {
		fmt.Println("请求失败:", err)
		return
	}

	// ==================== 处理响应 ====================

	// code === 0 表示成功,非 0 表示失败
	code := response["code"].(float64)
	if code != 0 {
		fmt.Println("调用失败:", response["desc"])
		return
	}

	// 从 data 字段读取业务数据
	ipInfo := response["data"].(map[string]interface{})
	fmt.Println("IP:     ", ipInfo["ip"])
	fmt.Println("国家:   ", ipInfo["nation"])
	fmt.Println("省份:   ", ipInfo["province"])
	fmt.Println("城市:   ", ipInfo["city"])
	fmt.Println("运营商: ", ipInfo["isp"])

	// ==================== 查看完整返回 ====================

	jsonBytes, _ := json.MarshalIndent(response, "", "    ")
	fmt.Println(string(jsonBytes))
}
// 聚合API平台 Java 调用示例:ipquery 接口
// 请求方式:POST
// 接口地址:https://www.phpwc.cn/api/ipquery
// 假设 SDK 类 WcapiSdk.java 已在项目中

import java.util.HashMap;    // HashMap 用于存储业务参数
import java.util.Map;        // Map 接口

// 这里使用 Jackson 解析 JSON,实际可用 Gson/FastJSON 等替代
import com.fasterxml.jackson.databind.ObjectMapper;

public class Example {
    public static void main(String[] args) throws Exception {
        // ==================== 配置区(从用户中心获取) ====================

        String host   = "https://www.phpwc.cn/api/";       // 平台域名(固定值)
        String pid    = "1000";                                 // 用户ID,登录用户中心可见
        String appkey = "tF9r7oQJ1dim46nM5xzBbuUaLNjf3uOA";    // API密钥,用户中心 → API设置 页面生成

        // ==================== 调用 ipquery ====================

        // 查询 IP 归属地,WcapiSdk.callApi() 由 SDK 提供
        Map bizParams = new HashMap<>();
        bizParams.put("ip", "8.8.8.8");

        // callApi 内部会自动拼接地址、计算 sign、使用 POST 发送参数
        // 返回 result 是 JSON 字符串,对应 {code, desc, data, request_id}
        String result = WcapiSdk.callApi(host, pid, appkey, "ipquery", bizParams);

        // ==================== 处理响应 ====================

        // 把 JSON 字符串解析为 Map(Jackson)
        ObjectMapper mapper = new ObjectMapper();
        Map response = mapper.readValue(result, Map.class);

        // code === 0 表示成功,非 0 表示失败
        int code = (Integer) response.get("code");
        if (code != 0) {
            System.out.println("调用失败:" + response.get("desc"));
            return;
        }

        // 从 data 字段读取业务数据
        Map ipInfo = (Map) response.get("data");
        System.out.println("IP:      " + ipInfo.get("ip"));
        System.out.println("国家:    " + ipInfo.get("nation"));
        System.out.println("省份:    " + ipInfo.get("province"));
        System.out.println("城市:    " + ipInfo.get("city"));
        System.out.println("运营商:  " + ipInfo.get("isp"));

        // ==================== 查看完整返回 ====================

        System.out.println(result);
    }
}
using System;                            // Console 等基础类型
using System.Collections.Generic;      // Dictionary 类型
using System.Threading.Tasks;          // 异步任务
using System.Text.Json;                // .NET 内置 JSON 解析
using WcapiSdk;                        // 引入 SDK 命名空间(WcapiClient 类)

// 聚合API平台 C# 调用示例:ipquery 接口
// 请求方式:POST
// 接口地址:https://www.phpwc.cn/api/ipquery
// 假设 SDK 文件 WcapiSdk.cs 已在项目中

class Program
{
    static async Task Main(string[] args)
    {
        // ==================== 配置区(从用户中心获取) ====================

        string host   = "https://www.phpwc.cn/api/";       // 平台域名(固定值)
        string pid    = "1000";                                 // 用户ID,登录用户中心可见
        string appkey = "tF9r7oQJ1dim46nM5xzBbuUaLNjf3uOA";    // API密钥,用户中心 → API设置 页面生成

        // ==================== 调用 ipquery ====================

        // 创建 SDK 客户端实例
        var client = new WcapiClient();

        // 查询 IP 归属地,CallApiAsync() 由 SDK 提供
        var bizParams = new Dictionary
        {
            { "ip", "8.8.8.8" }
        };

        // CallApiAsync 内部会自动拼接地址、计算 sign、使用 POST 发送参数
        // 返回 result 是 JSON 字符串,对应 {code, desc, data, request_id}
        string result = await client.CallApiAsync(host, pid, appkey, "ipquery", bizParams);

        // ==================== 处理响应 ====================

        // 把 JSON 字符串解析为字典
        var response = JsonSerializer.Deserialize>(result);

        // code === 0 表示成功,非 0 表示失败
        if (Convert.ToInt32(response["code"]) != 0)
        {
            Console.WriteLine("调用失败:" + response["desc"]);
            return;
        }

        // 从 data 字段读取业务数据
        var ipInfo = (JsonElement)response["data"];
        Console.WriteLine("IP:      " + ipInfo.GetProperty("ip"));
        Console.WriteLine("国家:    " + ipInfo.GetProperty("nation"));
        Console.WriteLine("省份:    " + ipInfo.GetProperty("province"));
        Console.WriteLine("城市:    " + ipInfo.GetProperty("city"));
        Console.WriteLine("运营商:  " + ipInfo.GetProperty("isp"));

        // ==================== 查看完整返回 ====================

        Console.WriteLine(result);
    }
}
/*
 * 聚合API平台 Objective-C 调用示例:ipquery 接口
 * 请求方式:POST
 * 接口地址:https://www.phpwc.cn/api/ipquery
 * 假设 SDK 文件 WcapiClient.h/m 已加入项目
 */

#import "WcapiClient.h"  // 引入 SDK 头文件

int main(int argc, const char * argv[])
{
    // ==================== 配置区(从用户中心获取) ====================

    NSString *host   = @"https://www.phpwc.cn/api/";       // 平台域名(固定值)
    NSString *pid    = @"1000";                                 // 用户ID,登录用户中心可见
    NSString *appkey = @"tF9r7oQJ1dim46nM5xzBbuUaLNjf3uOA";    // API密钥,用户中心 → API设置 页面生成

    // ==================== 调用 ipquery ====================

    // 查询 IP 归属地,callApiWithHost 由 SDK 提供
    NSDictionary *bizParams = @{
        @"ip": @"8.8.8.8"
    };

    // callApiWithHost 内部会自动拼接地址、计算 sign、使用 POST 发送参数
    // 返回 result 是 NSDictionary,对应 JSON 中的 {code, desc, data, request_id}
    [WcapiClient callApiWithHost:host
                              pid:pid
                           appkey:appkey
                          jk_mark:@"ipquery"
                       biz_params:bizParams
                       completion:^(NSDictionary *result, NSError *error) {
        // ==================== 处理响应 ====================

        // 处理网络错误
        if (error) {
            NSLog(@"请求失败: %@", error);
            return;
        }

        // code === 0 表示成功,非 0 表示失败
        NSNumber *code = result[@"code"];
        if ([code intValue] != 0) {
            NSLog(@"调用失败: %@", result[@"desc"]);
            return;
        }

        // 从 data 字段读取业务数据
        NSDictionary *ipInfo = result[@"data"];
        NSLog(@"IP:      %@", ipInfo[@"ip"]);
        NSLog(@"国家:    %@", ipInfo[@"nation"]);
        NSLog(@"省份:    %@", ipInfo[@"province"]);
        NSLog(@"城市:    %@", ipInfo[@"city"]);
        NSLog(@"运营商:  %@", ipInfo[@"isp"]);

        // ==================== 查看完整返回 ====================

        NSLog(@"完整返回: %@", result);
    }];

    return 0;
}
#!/bin/bash
# 聚合API平台 cURL 调用示例:ipquery 接口
# 请求方式:POST
# 接口地址:https://www.phpwc.cn/api/ipquery
# 适用于 Linux / macOS / Windows Git Bash 等支持 bash 的环境

# ==================== 配置区(从用户中心获取) ====================

HOST="https://www.phpwc.cn/api/"         # 平台域名(固定值)
PID="1000"                                   # 用户ID,登录用户中心可见
APPKEY="tF9r7oQJ1dim46nM5xzBbuUaLNjf3uOA"    # API密钥,用户中心 → API设置 页面生成

# ==================== 调用 ipquery ====================

# 生成签名:MD5("pid=" + pid + appkey)
SIGN_STR="pid=${PID}${APPKEY}"
SIGN=$(echo -n "$SIGN_STR" | md5sum | awk '{print $1}')   # macOS 用 md5 替代 md5sum

# 拼接完整请求地址
URL="${HOST%/}/ipquery"

# 使用 cURL 发起 POST 请求
# -s 静默模式,-X POST 指定请求方式,-d 指定请求参数
# pid/sign 为公共参数,ip 为 ipquery 的业务参数
RESPONSE=$(curl -s -X POST "$URL" \
    -d "pid=${PID}&sign=${SIGN}&ip=8.8.8.8")

# ==================== 处理响应 ====================

# 输出完整返回 JSON
echo "$RESPONSE"

# 使用 jq 解析并读取业务字段(需提前安装 jq:brew install jq / apt install jq)
# code 为 0 表示成功,非 0 表示失败
echo "$RESPONSE" | jq '.code'
echo "$RESPONSE" | jq -r '.data.ip'
echo "$RESPONSE" | jq -r '.data.nation'
echo "$RESPONSE" | jq -r '.data.province'
echo "$RESPONSE" | jq -r '.data.city'
echo "$RESPONSE" | jq -r '.data.isp'

ipquery 返回示例

{
    // 状态码,0 表示成功
    "code": 0,
    // 状态描述
    "desc": "success",
    // 业务数据,ipquery 接口返回的 IP 归属地信息
    "data": {
        "ip": "8.8.8.8",
        "nation": "美国",
        "province": "加利福尼亚州",
        "city": "山景城",
        "isp": "Google LLC"
    },
    // 请求追踪ID
    "request_id": "req_20240908123456"
}
返回码非 0 时为调用失败,desc 字段包含失败原因,完整返回码见错误码速查

© 网程科技(林州网程科技有限公司)   |  豫ICP备2025120409号-2   |  豫B2-20230220   |  豫公网安备 41058102000262号