基于GO的图片验证码识别api调用代码实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于GO的图片验证码识别api调用代码实例

代码描述:基于GO的图片验证码识别api调用代码实例

代码平台:聚合数据

package main

import(

"io/ioutil"

"net/http"

"net/url"

"fmt"

"encoding/json"

)

//----------------------------------

// 验证码识别调用示例代码-聚合数据

// 在线接口文档:/docs/60

//----------------------------------

const APPKEY = "*******************"//您申请的APPKEY

func main(){

//1.识别验证码

Request1()

//2.查询验证码类型代码

Request2()

}

//1.识别验证码

func Request1(){

//请求地址

juheURL :="/vercode/index"

//初始化参数

param:=url.Values{}

//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参param.Set("key",APPKEY) //您申请到的APPKEY

param.Set("codeType","") //验证码的类型,<a href="http://www. /docs/api/id/60/aid/352" target="_blank">查询&l t;/a>

param.Set("image","") //图片文件

param.Set("dtype","") //返回的数据的格式,json或xml,默认为json

//发送请求

data,err:=Post(juheURL,param)

if err!=nil{

fmt.Errorf("请求失败,错误信息:\r\n%v",err)

}else{

var netReturn map[string]interface{}

json.Unmarshal(data,&netReturn)

if netReturn["error_code"].(float64)==0{

fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result "])

}

}

}

//2.查询验证码类型代码

func Request2(){

//请求地址

juheURL :="/vercode/codeType"

//初始化参数

param:=url.Values{}

//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参

param.Set("key",APPKEY) //您申请到的APPKEY

param.Set("dtype","") //返回的数据的格式,json或xml,默认为json

//发送请求

data,err:=Get(juheURL,param)

if err!=nil{

fmt.Errorf("请求失败,错误信息:\r\n%v",err)

}else{

var netReturn map[string]interface{}

json.Unmarshal(data,&netReturn)

if netReturn["error_code"].(float64)==0{

fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result "])

}

}

}

// get 网络请求

func Get(apiURL string,params url.Values)(rs[]byte,err error){ var Url *url.URL

Url,err=url.Parse(apiURL)

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(apiURL string, params url.Values)(rs[]byte,err error){ resp,err:=http.PostForm(apiURL, params)

if err!=nil{

return nil ,err

}

defer resp.Body.Close()

return ioutil.ReadAll(resp.Body)

}

相关文档
最新文档