Go语言调用手机号码查询接口示例:
package main import ( "encoding/json" "encoding/xml" "fmt" "io/ioutil" "net/http" ) const ( URL = "https://api.ip138.com/mobile/" TOKEN = "bd4c2bf9a38ab06f7cae88c9759ee172" ) //---------------------------------- // 手机号查询接口调用示例代码 //---------------------------------- // xml struct type xmlinfo struct { Ret string `xml:"ret"` Mobile string `xml:"mobile"` Data locationxmlInfo `xml:"data"` } type locationxmlInfo struct { Province string `xml:"province"` City string `xml:"city"` Card string `xml:"card"` Zone string `xml:"zone"` } //json struct type jsoninfo struct { Ret string `json:"ret"` Mobile string `json:"mobile"` Data [4] string `json:"data"` } func main() { mobileLocation("13600130000","xml") } func mobileLocation(mobile string,dataType string) { queryUrl := fmt.Sprintf("%s?mobile=%s&datatype=%s",URL,mobile,dataType) client := &http.Client{} reqest, err := http.NewRequest("GET",queryUrl,nil) if err != nil { fmt.Println("Fatal error ",err.Error()) } reqest.Header.Add("token",TOKEN) response, err := client.Do(reqest) defer response.Body.Close() if err != nil { fmt.Println("Fatal error ",err.Error()) } if response.StatusCode == 200 { bodyByte, _ := ioutil.ReadAll(response.Body) if dataType == "jsonp" { var info jsoninfo json.Unmarshal(bodyByte,&info) fmt.Println(info.Mobile) } else if dataType == "xml" { var info xmlinfo xml.Unmarshal(bodyByte,&info) fmt.Println(info.Mobile) } } return }