golang http请求及json流解析 - 长风v持成的博客 - CSDN博客 https://blog.csdn.net/u011677067/article/details/80852158

  1. package main
  2.  
  3. import (
  4. "encoding/json"
  5. "fmt"
  6. //"io/ioutil"
  7. "log"
  8. "net/http"
  9. "net/url"
  10. "os"
  11. "strings"
  12. "time"
  13. )
  14.  
  15. const IssueURL = "https://api.github.com/search/issues"
  16.  
  17. type IssuesSearchResult struct {
  18. TotalCount int `json:"total_count"`
  19. Items []*Issue
  20. }
  21.  
  22. type Issue struct {
  23. Number int
  24. HTMLURL string `json:"html_url"`
  25. Title string
  26. State string
  27. User *User
  28. CreateAt time.Time `json:"create_at"`
  29. Body string
  30. }
  31.  
  32. type User struct {
  33. Login string
  34. HTMLURL string `json:"html_url"`
  35. }
  36.  
  37. func SearchIssues(terms []string) (*IssuesSearchResult, error) {
  38. q := url.QueryEscape(strings.Join(terms, " "))
  39. urls := IssueURL + "?q=" + q
  40. resp, err := http.Get(urls)
  41. if err != nil {
  42. return nil, err
  43. }
  44. defer resp.Body.Close()
  45.  
  46. fmt.Println("start encode ...")
  47.  
  48. /*web, err := ioutil.ReadAll(resp.Body)
  49. if err != nil {
  50. return nil, err
  51. }
  52. fmt.Printf("web:%s\n==============\n", web)
  53. */
  54. if resp.StatusCode != http.StatusOK {
  55. return nil, fmt.Errorf("search query failed: %s", resp.Status)
  56. }
  57.  
  58. var result IssuesSearchResult
  59. if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
  60. return nil, err
  61. }
  62. return &result, nil
  63. }
  64.  
  65. func main() {
  66. result, err := SearchIssues(os.Args[1:])
  67. if err != nil {
  68. log.Fatal(err)
  69. }
  70. fmt.Printf("%d issue: \n", result.TotalCount)
  71.  
  72. for _, item := range result.Items {
  73. fmt.Printf("#<%-5d> <%9.9s> <%.55s>\n\n", item.Number, item.User.Login, item.Title)
  74. }
  75. }

  

go http 传递json数据 - 翔云 - CSDN博客 https://blog.csdn.net/lanyang123456/article/details/78702873

  1. package main
  2.  
  3. import (
  4. "encoding/json"
  5. "fmt"
  6. "html"
  7. "io/ioutil"
  8. "log"
  9. "net/http"
  10.  
  11. )
  12.  
  13. type Cmd struct {
  14. ReqType int
  15. FileName string
  16.  
  17. }
  18.  
  19. func main() {
  20.  
  21. http.HandleFunc("/bar", func (w http.ResponseWriter, r *http.Request){
  22. fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))
  23.  
  24. if r.Method == "POST" {
  25. b, err := ioutil.ReadAll(r.Body)
  26. if err != nil {
  27. log.Println("Read failed:", err)
  28. }
  29. defer r.Body.Close()
  30.  
  31. cmd := &Cmd{}
  32. err = json.Unmarshal(b, cmd)
  33. if err != nil {
  34. log.Println("json format error:", err)
  35. }
  36.  
  37. log.Println("cmd:", cmd)
  38. } else {
  39.  
  40. log.Println("ONly support Post")
  41. fmt.Fprintf(w, "Only support post")
  42. }
  43.  
  44. })
  45.  
  46. log.Fatal(http.ListenAndServe(":8080", nil))
  47.  
  48. }

  

  1. //post json
  2. package main
  3.  
  4. import (
  5. "bytes"
  6. "encoding/json"
  7. "io/ioutil"
  8. "log"
  9. "net/http"
  10.  
  11. )
  12.  
  13. type Cmd struct {
  14.  
  15. ReqType int
  16. FileName string
  17.  
  18. }
  19.  
  20. func main() {
  21.  
  22. url := "http://127.0.0.1:8080/bar"
  23. contentType := "application/json;charset=utf-8"
  24.  
  25. cmd := Cmd{ReqType: 12, FileName: "plugin"}
  26. b ,err := json.Marshal(cmd)
  27. if err != nil {
  28. log.Println("json format error:", err)
  29. return
  30. }
  31.  
  32. body := bytes.NewBuffer(b)
  33.  
  34. resp, err := http.Post(url, contentType, body)
  35. if err != nil {
  36. log.Println("Post failed:", err)
  37. return
  38. }
  39.  
  40. defer resp.Body.Close()
  41.  
  42. content, err := ioutil.ReadAll(resp.Body)
  43. if err != nil {
  44. log.Println("Read failed:", err)
  45. return
  46. }
  47.  
  48. log.Println("content:", string(content))
  49.  
  50. }

  

http请求及json发送与解析 post string的更多相关文章

  1. android通过httpClient请求获取JSON数据并且解析

    使用.net创建一个ashx文件,并response.write  json格式 public void ProcessRequest(HttpContext context) { context.R ...

  2. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  3. 发送Ajax请求获取JSON格式数据

    Aspx前端页面: <script type="text/javascript"> $(function () { $.getJSON("Ajax/TestA ...

  4. Flutter网络请求与JSON解析

    本文介绍如何在Flutter中创建HTTP网络请求和对请求的json string进行类型解析. 网络请求 官方使用的是用dart io中的HttpClient发起的请求,但HttpClient本身功 ...

  5. Java发送Post请求,参数JSON,接收JSON

    /** * 发送post请求 * @param url 路径 * @param jsonObject 参数(json类型) * @param encoding 编码格式 * @return * @th ...

  6. 使用Retrofit发送POST请求提交JSON数据

    Retrofit官网:https://square.github.io/retrofit/ 示例如下 HttpService.java import okhttp3.RequestBody; impo ...

  7. android基础---->JSON数据的解析

    上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...

  8. iOS开发——实战篇Swift篇&UItableView结合网络请求,多线程,数据解析,MVC实战

    UItableView结合网络请求,多线程,数据解析,MVC实战 学了这么久的swift都没有做过什么东西,今天就以自己的一个小小的联系,讲一下,怎么使用swift在实战中应用MVC,并且结合后面的高 ...

  9. 网络HTTP、JSON、XML解析等 复习

    一.一个HTTP请求的基本要素1.请求URL:客户端通过哪个路径找到服务器 2.请求参数:客户端发送给服务器的数据* 比如登录时需要发送的用户名和密码 3.返回结果:服务器返回给客户端的数据* 一般是 ...

随机推荐

  1. 0062 Spring MVC的文件上传与下载--MultipartFile--ResponseEntity

    文件上传功能在网页中见的太多了,比如上传照片作为头像.上传Excel文档导入数据等 先写个上传文件的html <!DOCTYPE html> <html> <head&g ...

  2. C++之把流对象当做函数参数传递

    一.编译不通过的代码: /******************************************************************************* * File ...

  3. 解决:Scanner输入数字总是莫名其妙多个0

    用BufferedInputStream解决 Scanner scanner = new Scanner(new BufferedInputStream(System.in)); System.out ...

  4. spring 注解@Resource @Autowired区别

    1.@Autowired寻找类的时候默认是ByType,也就是通过类的类型来寻找类.不过,也可以通过借助@Qualifier("name")来指定寻找的类名 @Autowired ...

  5. 跟着百度学习php之ThinkPHP的运行流程-2

    Thinkphp为了提高编译的效率,第一次运行的时候thinkphp会把文件全部编译到temp目录下的~runtime.php文件,在第二次运行的时候会直接读取这个文件.所以我们在线下自己写代码测试的 ...

  6. hive中array嵌套map以及行转列的使用

    1. 数据源信息 {"student": {"name":"king","age":11,"sex" ...

  7. [Cxf] cxf 相关知识整理

    ① 请求方式为GET @GET @Path(value = "/userAddressManage") @Produces( { MediaType.APPLICATION_JSO ...

  8. GUI的广泛应用是当今计算机发展的重大成就之一

    GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用.人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口.菜单.按键等方式来方便地进行操作.而嵌入式GUI具有下面几 ...

  9. 转载 Python导入模块的几种姿势

    作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包.但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活.在本文中,我们将探讨以下 ...

  10. 【noip模拟题】藏宝图(prim)

    好神的一题.. 一开始没想多久就看题解了QAQ.. 首先我们发现,这棵树任意两个点的边一定是最小的(即所有其它这两个点的路径都比这条边大,才有可能出解) 然后生成树后再算距离判断即可.. 注意特判n= ...