[其他]代码库
package main
import (
"io/ioutil"
"net/http"
"net/url"
"fmt"
"encoding/json"
)
//----------------------------------
// 律师查询调用示例代码 - 聚合数据
// 在线接口文档:http://www.juhe.cn/docs/83
//----------------------------------
const APPKEY = "*******************" //您申请的APPKEY
func main(){
//1.按省份查询律师
Request1()
//2.按城市查询律师
Request2()
//3.按相似姓名查询律师
Request3()
//4.按专长领域查询律师
Request4()
//5.随机查询律师
Request5()
//6.按手机号码查询律师
Request6()
//7.由省份查询城市
Request7()
//8.查询专业领域
Request8()
//9.查询省份列表
Request9()
//10.按姓名查询律师辩词
Request10()
//11.按关键词查询律师辩词
Request11()
//12.随机查询律师辩词
Request12()
}
//1.按省份查询律师
func Request1(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/pro"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("st","") //开始数
param.Set("count","") //返回的个数
param.Set("pro","") //省份名字,如:江苏
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//2.按城市查询律师
func Request2(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/city"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("st","") //开始数
param.Set("count","") //返回的个数
param.Set("city","") //城市名字,如:苏州
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//3.按相似姓名查询律师
func Request3(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/name"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("st","") //开始数
param.Set("count","") //返回的个数
param.Set("name","") //要查询的名字,如:张三、张、安等(模糊查询)
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//4.按专长领域查询律师
func Request4(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/spec"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("st","") //开始数
param.Set("count","") //返回的个数
param.Set("spec","") //专长领域
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//5.随机查询律师
func Request5(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/rand"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("count","") //返回的个数
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//6.按手机号码查询律师
func Request6(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/mobile"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("st","") //开始数
param.Set("count","") //返回的个数
param.Set("mobile","") //手机号码
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//7.由省份查询城市
func Request7(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/citiesByPro"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("pro","") //省份,如:江苏
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//8.查询专业领域
func Request8(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/specs"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//9.查询省份列表
func Request9(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/pros"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//10.按姓名查询律师辩词
func Request10(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/argsByName"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("st","") //开始数
param.Set("count","") //返回的个数
param.Set("name","") //律师姓名
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//11.按关键词查询律师辩词
func Request11(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/argsByTerm"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("st","") //开始数
param.Set("count","") //返回的个数
param.Set("term","") //关键词
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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"])
}
}
}
//12.随机查询律师辩词
func Request12(){
//请求地址
juheURL :="http://op.juhe.cn/lawyers/argsByRand"
//初始化参数
param:=url.Values{}
//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参
param.Set("dtype","") //返回的数据格式,json或xml
param.Set("count","") //返回的个数
param.Set("key",APPKEY) //您申请的AppKey,请在应用详细页查询
//发送请求
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)
}