http.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package http
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "io"
  7. "io/ioutil"
  8. "net/http"
  9. "unsafe"
  10. )
  11. func GetReq(url string) *http.Response {
  12. client := &http.Client{}
  13. req, err := http.NewRequest("GET", url, nil)
  14. if err != nil {
  15. panic(err)
  16. }
  17. resp, err := client.Do(req)
  18. if err != nil {
  19. panic(err)
  20. }
  21. //defer func(Body io.ReadCloser) {
  22. // err := Body.Close()
  23. // if err != nil {
  24. // fmt.Print("Body close err" + err.Error())
  25. // }
  26. //}(resp.Body)
  27. return resp
  28. }
  29. //func postReq(name string, age int) {
  30. // client := &http.Client{}
  31. //
  32. // req, err := http.NewRequest("POST", "http://localhost:5000/post",
  33. // strings.NewReader(fmt.Sprintf("name=%s&age=%d", name, age)))
  34. // if err != nil {
  35. // panic(err)
  36. // }
  37. //
  38. // req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
  39. //
  40. // resp, err := client.Do(req)
  41. //
  42. // defer resp.Body.Close()
  43. //
  44. //}
  45. // PostReqJson 通过json提交post
  46. func PostReqJson(url string, json []byte) *http.Response {
  47. req, err := http.NewRequest("POST", url, bytes.NewBuffer(json))
  48. req.Header.Set("Content-Type", "application/json")
  49. client := &http.Client{}
  50. resp, err := client.Do(req)
  51. if err != nil {
  52. panic(err)
  53. }
  54. defer func(Body io.ReadCloser) {
  55. err := Body.Close()
  56. if err != nil {
  57. fmt.Print("Body close err" + err.Error())
  58. }
  59. }(resp.Body)
  60. return resp
  61. }
  62. type JsonPost struct {
  63. }
  64. func (jp *JsonPost) postReqJson2() {
  65. post := make(map[string]interface{})
  66. post["name"] = "王柳"
  67. post["age"] = 21
  68. bytesData, err := json.Marshal(post)
  69. if err != nil {
  70. fmt.Println(err.Error())
  71. return
  72. }
  73. reader := bytes.NewReader(bytesData)
  74. url := "http://localhost:5000/post"
  75. request, err := http.NewRequest("POST", url, reader)
  76. if err != nil {
  77. fmt.Println(err.Error())
  78. return
  79. }
  80. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  81. client := http.Client{}
  82. resp, err := client.Do(request)
  83. if err != nil {
  84. fmt.Println(err.Error())
  85. return
  86. }
  87. respBytes, err := ioutil.ReadAll(resp.Body)
  88. if err != nil {
  89. fmt.Println(err.Error())
  90. return
  91. }
  92. //byte数组直接转成string,优化内存
  93. str := (*string)(unsafe.Pointer(&respBytes))
  94. fmt.Println(*str)
  95. }
  96. // DeleteReq 发送delete请求
  97. func DeleteReq(url string) *http.Response {
  98. client := &http.Client{}
  99. req, err := http.NewRequest("DELETE", url, nil)
  100. if err != nil {
  101. panic(err)
  102. }
  103. resp, err := client.Do(req)
  104. if err != nil {
  105. panic(err)
  106. }
  107. return resp
  108. }