基于GO的搞笑段子api调用代码实例_vfp中api函数调用实例
基于GO的搞笑段子api调用代码实例由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vfp中api函数调用实例”。
基于GO的搞笑段子api调用代码实例
代码描述:基于GO的搞笑段子api调用代码实例 代码平台:聚合数据
package main import(“io/ioutil”
“net/http”
“net/url”
“fmt”
“encoding/json”)
//---
// 笑话大全调用示例代码 - 聚合数据
// 在线接口文档:http://www.daodoc.com/funny/type.from“
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set(”key“,APPKEY)//您申请的key
//发送请求
data,err:=Get(juheURL,param)
if err!=nil{
fmt.Errorf(”请求失败,错误信息:rn%v“,err)
}else{
var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn[”error_code“].(float64)==0{
fmt.Printf(”接口返回result字段是:rn%v“,netReturn[”result“])
}
} }
//2.根据接口序号查询 func Request2(){
//请求地址
juheURL :=”http://japi.juhe.cn/funny/list.from“
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set(”cat“,”“)//指定接口类型,默认
1param.Set(”st“,”“)//指定开始数,默认0
param.Set(”count“,”“)//指定返回个数,默认1
param.Set(”key“,APPKEY)//您申请的key
//发送请求
data,err:=Get(juheURL,param)
if err!=nil{
fmt.Errorf(”请求失败,错误信息:rn%v“,err)
}else{
var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)if netReturn[”error_code“].(float64)==0{
fmt.Printf(”接口返回result字段是:rn%v“,netReturn[”result“])
}
} }
//3.按类搜索接口 func Request3(){
//请求地址
juheURL :=”http://japi.juhe.cn/funny/search.from“
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set(”st“,”“)//指定开始数,默认0
param.Set(”count“,”“)//指定返回数量,默认1
param.Set(”term“,”“)//指定搜索关键词
param.Set(”key“,APPKEY)//您申请的key
//发送请求
data,err:=Get(juheURL,param)
if err!=nil{
fmt.Errorf(”请求失败,错误信息:rn%v“,err)
}else{
var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn[”error_code“].(float64)==0{
fmt.Printf(”接口返回result字段是:rn%v“,netReturn[”result“])
}
} }
//4.参考答案接口 func Request4(){
//请求地址
juheURL :=”http://japi.juhe.cn/funny/answer.from“
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set(”id“,”“)//指定谜语、歇后语、打油诗、脑筋急转弯编号
//发送请求
data,err:=Get(juheURL,param)
if err!=nil{
fmt.Errorf(”请求失败,错误信息:rn%v“,err)
}else{
var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn[”error_code“].(float64)==0{
fmt.Printf(”接口返回result字段是:rn%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错误:rn%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)}