zoukankan      html  css  js  c++  java
  • go工具方法-http

     1 package http
     2 
     3 import (
     4     "bytes"
     5     "encoding/json"
     6     "io/ioutil"
     7     "net/http"
     8     "time"
     9 )
    10 // 复制代码即可使用 11 // 发送GET请求 12 // url: 请求地址 13 func Get(url string) (string, error) { 14 15 client := &http.Client{} 16 req, err := http.NewRequest("GET", url, nil) 17 req.Header.Set("Accept", "*/*") 18 req.Header.Set("Content-Type", "application/json") 19 if err != nil { 20 return "", err 21 } 22 23 resp, err := client.Do(req) 24 if err != nil { 25 return "", err 26 } 27 defer resp.Body.Close() 28 result, err := ioutil.ReadAll(resp.Body) 29 if err != nil { 30 return "",err 31 } 32 return string(result), nil 33 } 34 35 // 发送POST请求 36 // url: 请求地址 37 // data: POST请求提交的数据 38 // contentType: 请求体格式,如:application/json 39 func Post(url string, data interface{}, contentType string) (string,error) { 40 41 // 超时时间:5秒 42 client := &http.Client{Timeout: 5 * time.Second} 43 jsonStr, err := json.Marshal(data) 44 if err != nil { 45 return "",err 46 } 47 resp, err := client.Post(url, contentType, bytes.NewBuffer(jsonStr)) 48 if err != nil { 49 return "",err 50 } 51 defer resp.Body.Close() 52 53 result, err := ioutil.ReadAll(resp.Body) 54 if err != nil { 55 return "",err 56 } 57 return string(result),nil 58 } 59 60 //测试方法post 61 var contentType="application/json" 62 func TestPost(t *testing.T) { 63 url := "http://127.0.0.1:8555" 64 bc_no := strconv.FormatInt(11941, 16) 65 bc_no="0x"+bc_no 66 params:=[]string{bc_no} 67 body :=map[string]interface{}{ 68 "jsonrpc":"2.0", 69 "method":"eth_getBlockTransactionCountByNumber", 70 "params":params, 71 "id":time.Now().Unix(), 72 } 73 data,err:=Post(url,body,contentType) 74 if err !=nil { 75 fmt.Printf("eth_getBlockTransactionCountByNumber err:%v",err) 76 return 77 } 78 fmt.Println(string(data)) 79 80 } 81 82 83 84 85
  • 相关阅读:
    Python学习日记(三) 学习使用dict
    Python学习日记(二) list操作
    Python学习日记(一) String函数使用
    Linux 下查找并删除文件命令
    spring mvc处理静态文件
    集合工具类CollectionUtils、ListUtils、SetUtils、MapUtils探究(转)
    如何选择IO流
    java并发框架Executor介绍
    mybatis如何传入一个list参数
    大规模SOA系统中的分布事务思考
  • 原文地址:https://www.cnblogs.com/ashion89/p/14177358.html
Copyright © 2011-2022 走看看