名称 | 类型 | 必填 | 说明 |
---|---|---|---|
appKey | String | 是 | 接口唯一标识,在用户后台->应用中心->我的接口查看 |
openId | String | 是 | 平台id,注册后系统自动生成,在用户后台->用户中心->账户信息查看 |
dType | String | 否 | 返回类型,json/xml,默认为json,区分大小写 |
w | Integer | 否 | 验证码图片宽度,单位px |
h | Integer | 否 | 验证码图片高度,单位px |
len | Integer | 否 | 验证码长度,3-15位之间 |
fontSize | Integer | 否 | 验证码字体大小,默认40 |
fontColor | String | 否 | 字体颜色,合法值: r,g,b 或者 white,black,blue. |
backgroundFrom | String | 否 | 背景颜色渐变,开始颜色,合法值: r,g,b 或者 white,black,blue. |
backgroundTo | String | 否 | 背景颜色渐变, 结束颜色,合法值: r,g,b 或者 white,black,blue. |
noiseColor | String | 否 | 干扰 颜色,合法值: r,g,b 或者 white,black,blue. |
style | String | 否 | 图片样式,水纹、鱼眼 、 阴影 共三个值:water、fishEye、shadow |
名称 | 类型 | 说明 |
---|---|---|
errorCode | Integer | 错误码,请参看错误码解释 |
error | String | 错误标识 |
errorMessage | String | 错误提示 |
capText | String | 验证码 |
capBase64Pic | String | 验证码图片,base64格式 |
{
"data": {
"capText": "mxny763",
"capBase64Pic": "data:image/jpg;base64,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"
},
"errorMessage": "成功",
"errorCode": 0,
"error": "success"
}
<Map>
<data>
<capText>ywmd7db</capText>
<capBase64Pic>data:image/jpg;base64,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</capBase64Pic>
</data>
<errorMessage>成功</errorMessage>
<errorCode>0</errorCode>
<error>success</error>
</Map>
错误码 | 错误标识 | 错误提示 |
---|---|---|
0 | success | 成功 |
1 | fail | 失败 |
2 | pass | 通过 |
3 | data_allow | 允许返回数据 |
10001 | error_appkey | 错误的appkey |
10002 | appkey_killed | appkey被封杀 |
10003 | api_exceed_max_limit | 接口使用超过日最大限额,有可能威胁服务器安全 |
10004 | api_exceed_limit | 接口访问次数耗尽,请及时续费 |
10005 | ip_illegal | 该ip没有请求权限,请检查白名单设置 |
10006 | ip_exceed_max_limit | 当前ip请求超过限制 |
10007 | ip_killed | 当前ip被封杀 |
10008 | error_openid | 错误的openid |
10009 | openid_killed | 该openid没有请求权限 |
10010 | api_maintenance | 接口维护 |
10011 | api_closed | 接口停用 |
10012 | server_inner_error | 服务器内部错误 |
10013 | your_api_closed | 该接口设置了关闭,请到用户后台查看 |
10014 | your_api_not_bind_app | 系统要求接口至少绑定一个应用,请到用户后台绑定 |
10015 | do_not_authenticate | 您的账户没有认证 |
10016 | ip_bind_api_exceed | 一个IP最多绑定2个相同接口 |
错误码 | 错误标识 | 错误提示 |
---|---|---|
20001 | width_is_illegal | 验证码宽度不合法,大于24,小于801 |
20002 | height_is_illegal | 验证码高度不合法,大于24,小于801 |
20003 | length_is_illegal | 验证码长度不合法,大于2,小于16 |
20004 | style_is_illegal | 验证码样式需为几个固定修饰词 |
20005 | paramter_is_error | 传入参数非法,没法生成对应内容 |
package com.xiaocongjisuan.module.example;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
public class Application {
public static final String DEF_CHATSET = "UTF-8";
public static final int DEF_CONN_TIMEOUT = 30000;
public static final int DEF_READ_TIMEOUT = 30000;
public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
//配置您申请的appKey和openId
public static final String APP_KEY ="yours";
public static final String OPEN_ID ="yours";
//将map型转为请求参数型
public static String urlEncode(Map<String,Object> params) {
if(params==null){return "";};
StringBuilder sb = new StringBuilder();
for (Map.Entry<String,Object> i : params.entrySet()) {
try {
sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
String r=sb.toString();
if(r.endsWith("&")){
r = r.substring(0,r.length()-1);
}
return r;
}
/**
*
* @param requestUrl 请求地址
* @param params 请求参数
* @param method 请求方法
* @return 请求结果
* @throws Exception
*/
public static String requestContent(String requestUrl, Map<String,Object> params,String method) throws Exception {
HttpURLConnection conn = null;
BufferedReader reader = null;
String rs = null;
try {
//组装请求链接
StringBuffer sb = new StringBuffer();
if(method!=null&&method.equalsIgnoreCase("get")){
requestUrl = requestUrl+"?"+urlEncode(params);
}
//默认get
URL url = new URL(requestUrl);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
if(method!=null&&method.equalsIgnoreCase("post")){
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
}
//参数配置
conn.setRequestProperty("User-agent", userAgent);
conn.setUseCaches(false);
conn.setConnectTimeout(DEF_CONN_TIMEOUT);
conn.setReadTimeout(DEF_READ_TIMEOUT);
conn.setInstanceFollowRedirects(false);
conn.connect();
if (params!= null && method.equalsIgnoreCase("post")) {
try {
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(urlEncode(params));
} catch (Exception e) {
e.printStackTrace();
}
}
//读取数据
InputStream is = conn.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sb.append(strRead);
}
rs = sb.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
reader.close();
}
if (conn != null) {
conn.disconnect();
}
}
return rs;
}
public static void main(String[] args) throws Exception{
String domain="http://api.xiaocongjisuan.com/";
String servlet="develop/verificationcode/get";
String method="get";
String requestUrl=domain+servlet;
Map<String,Object> params=new HashMap<String,Object>();
params.put("appKey",APP_KEY);
params.put("openId",OPEN_ID);
//变动部分
params.put("w",200);
params.put("h",50);
params.put("len",7);
params.put("fontSize",40);
String result=requestContent(requestUrl,params,method);
System.out.println(result);
}
}
# -*- coding: utf-8 -*-
# flake8: noqa
__author__ = 'wukong'
import urllib
from urllib import urlencode
#配置您申请的appKey和openId
app_key="***"
open_id="***"
"""
request_url 请求地址
params 请求参数
method 请求方法
"""
def request_content(request_url,params,method):
params = urlencode(params)
if method and method.lower() =="get":
f = urllib.urlopen("%s?%s" % (request_url, params))
else:
f = urllib.urlopen(request_url, params)
content = f.read()
print content
def main():
domain="http://api.xiaocongjisuan.com/";
servlet="develop/verificationcode/get"
method="get"
request_url=domain+servlet
#字典
params ={}
params["appKey"]=app_key
params["openId"]=open_id
#变动部分
params["w"]=200
params["h"]=50
params["len"]=7
params["fontSize"]=40
request_content(request_url,params,method)
if __name__ == '__main__':
main()
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<?php
/**
* @author
* @copyright 2019
*/
header("content-type:text/html;charset=utf-8"); //设置编码
//配置您申请的appKey和openId
$app_key = "***";
$open_id = "***";
/**
$url 请求地址
$params 请求参数
$ispost 请求方法
*/
function http_curl($url,$params=false,$ispost=false){
$httpInfo = array();
$ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
curl_setopt( $ch, CURLOPT_USERAGENT , "xiaocongjisuan");
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
if( $ispost )
{
curl_setopt( $ch , CURLOPT_POST , true );
curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
curl_setopt( $ch , CURLOPT_URL , $url );
}
else
{
if($params){
curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
}else{
curl_setopt( $ch , CURLOPT_URL , $url);
}
}
$response = curl_exec( $ch );
if ($response === FALSE) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
curl_close( $ch );
return $response;
}
function main(){
global $app_key;
global $open_id;
$domain="http://api.xiaocongjisuan.com/";
$servlet="develop/verificationcode/get";
$method="get";
$url=$domain."".$servlet;
$params['appKey']=$app_key;
$params['openId']=$open_id;
//变动部分
$params["w"]=200;
$params["h"]=50;
$params["len"]=7;
$params["fontSize"]=40;
//编码转换
foreach ($params as $key=>$value) {
$params[$key]=mb_convert_encoding($value, "UTF-8", "GBK");
}
$paramstring = http_build_query($params);
$content = http_curl($url,$paramstring,true);
return $content;
}
echo main();
?>
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
private static string appKey="yours";
private static string openId = "yours";
static string getResponseAsString(HttpWebResponse rsp, Encoding encoding)
{
System.IO.Stream stream = null;
StreamReader reader = null;
try
{
// 以字符流的方式读取HTTP响应
stream = rsp.GetResponseStream();
reader = new StreamReader(stream, encoding);
return reader.ReadToEnd();
}
finally
{
// 释放资源
if (reader != null) reader.Close();
if (stream != null) stream.Close();
if (rsp != null) rsp.Close();
}
}
/*
* parameters 参数
* encode 编码
*/
static string buildQuery(IDictionary<string,object> parameters, string encode)
{
StringBuilder postData = new StringBuilder();
bool hasParam = false;
IEnumerator<KeyValuePair<string, object>> dem = parameters.GetEnumerator();
while (dem.MoveNext())
{
string name = dem.Current.Key;
string value = dem.Current.Value.ToString(); ;
// 忽略参数名或参数值为空的参数
if (!string.IsNullOrEmpty(name))//&& !string.IsNullOrEmpty(value)
{
if (hasParam)
{
postData.Append("&");
}
postData.Append(name);
postData.Append("=");
if (encode == "gb2312")
{
postData.Append(System.Web.HttpUtility.UrlEncode(value, Encoding.GetEncoding("gb2312")));
}
else if (encode == "utf8")
{
postData.Append(System.Web.HttpUtility.UrlEncode(value, Encoding.UTF8));
}
else
{
postData.Append(value);
}
hasParam = true;
}
}
return postData.ToString();
}
/**
*
* @param url 请求地址
* @param params 请求参数
* @param method 请求方法
* @return 请求结果
* @throws Exception
*/
static string requestContent(string url, IDictionary<string,object> parameters, string method)
{
if (method.ToLower() == "post")
{
HttpWebRequest req = null;
HttpWebResponse rsp = null;
System.IO.Stream reqStream = null;
try
{
req = (HttpWebRequest)WebRequest.Create(url);
req.Method = method;
req.KeepAlive = false;
req.ProtocolVersion = HttpVersion.Version10;
req.Timeout = 5000;
req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
byte[] postData = Encoding.UTF8.GetBytes(buildQuery(parameters, "utf8"));
reqStream = req.GetRequestStream();
reqStream.Write(postData, 0, postData.Length);
rsp = (HttpWebResponse)req.GetResponse();
Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
return getResponseAsString(rsp, encoding);
}
catch (Exception ex)
{
return ex.Message;
}
finally
{
if (reqStream != null) reqStream.Close();
if (rsp != null) rsp.Close();
}
}
else
{
//创建请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + buildQuery(parameters, "utf8"));
//GET请求
request.Method = "GET";
request.ReadWriteTimeout = 5000;
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
//返回内容
string retString = myStreamReader.ReadToEnd();
return retString;
}
}
static void Main(string[] args)
{
String domain = "http://api.xiaocongjisuan.com/";
String servlet = "develop/verificationcode/get";
String method = "get";
String url = domain + servlet;
var parameters = new Dictionary<string,object>();
parameters.Add("appKey", appKey);
parameters.Add("openId", openId);
//变动部分
parameters.Add("w", 200);
parameters.Add("h", 50);
parameters.Add("len", 7);
parameters.Add("fontSize", 40);
string result = requestContent(url, parameters, method);
Console.WriteLine(result);
Console.Read();
}
}
}
package main
import (
"io/ioutil"
"net/http"
"net/url"
"fmt"
"strings"
)
//配置您申请的appKey和openId
const APP_KEY ="yours";
const OPEN_ID ="yours";
func requestContent(requestUrl string,params url.Values,method string)(rs[]byte ,err error){
if strings.ToUpper(method)=="GET"{
return get(requestUrl,params)
}
return post(requestUrl,params)
}
// get 网络请求
func get(requestUrl string,params url.Values)(rs[]byte ,err error){
var Url *url.URL
Url,err=url.Parse(requestUrl)
if err!=nil{
fmt.Printf("解析url错误:\r\n%v",err)
return nil,err
}
//如果参数中有中文参数,这个方法会进行URLEncode
Url.RawQuery=params.Encode()
resp,err:=http.Get(Url.String())
if err!=nil{
fmt.Println("err:",err)
return nil,err
}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)
}
// post 网络请求 ,params 是url.Values类型
func post(requestUrl string, params url.Values)(rs[]byte,err error){
resp,err:=http.PostForm(requestUrl, params)
if err!=nil{
return nil ,err
}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)
}
func main(){
domain :="http://api.xiaocongjisuan.com/"
servlet :="develop/verificationcode/get"
method :="get"
requestUrl:=domain+servlet
//初始化参数
params:=url.Values{}
params.Set("appKey",APP_KEY)
params.Set("openId",OPEN_ID)
//变动部分
params.Set("w","200")
params.Set("h","50")
params.Set("len","7")
params.Set("fontSize","40")
//发送请求
data,err:=requestContent(requestUrl,params,method)
fmt.Println(string(data))
if err!=nil{
fmt.Printf("解析url错误:\r\n%v",err)
}
}
var http = require('http');
var qs = require('querystring');
//配置您申请的appKey和openId
app_key = "***";
open_id = "***";
function request_content(request_url,port,params,method){
var path=request_url;
if(!!params){
var content = qs.stringify(params);
path=request_url+'?' + content;
}
var options = {
port: port,
path: path,
method: method
};
if(method.toLowerCase()=='post'){
options['headers']="Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8";
}
var req = http.request(options, function (res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log(chunk);
});
});
req.on('error', function (e) {
console.log('problem with request: ' + e.message);
});
req.end();
}
function main(){
var domain="http://api.xiaocongjisuan.com/";
var port=8080;//http对应80端口,https 对应443端口,请使用者自己改正
var servlet="develop/verificationcode/get";
var method="get";
var request_url=domain+servlet;
var params = {};
params['appKey']=app_key;
params['openId']=open_id;
//变动部分
params["w"]=200;
params["h"]=50;
params["len"]=7;
params["fontSize"]=40;
request_content(request_url,port,params,method);
}
main();