go http 传递json数据

上篇博文中简单介绍了Go HTTP的Server 和Client。本文介绍如何在HTTP中传递json格式的数据。

Server

package  main

import (
        "encoding/json"
        "fmt"
        "html"
        "io/ioutil"
        "log"
        "net/http"

)

type Cmd struct {
        ReqType int
        FileName string

}

func main() {

        http.HandleFunc("/bar", func (w http.ResponseWriter, r *http.Request){
                fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path))

                if r.Method == "POST" {
                        b, err := ioutil.ReadAll(r.Body)
                        if err != nil {
                                log.Println("Read failed:", err)
                        }
                        defer r.Body.Close()

                        cmd := &Cmd{}
                        err = json.Unmarshal(b, cmd)
                        if err != nil {
                                log.Println("json format error:", err)
                        }

                        log.Println("cmd:", cmd)
                } else {

                        log.Println("ONly support Post")
                        fmt.Fprintf(w, "Only support post")
                }

        })

        log.Fatal(http.ListenAndServe(":8080", nil))

}

接收数据,进行json解码。

Client

package main

import (
        "bytes"
        "io/ioutil"
        "log"
        "net/http"

)

func main() {

        url := "http://127.0.0.1:8080/bar"
        contentType := "application/json;charset=utf-8"

        b := []byte("Hello, Server")
        body := bytes.NewBuffer(b)

        resp, err := http.Post(url, contentType, body)
        if err != nil {
                log.Println("Post failed:", err)
                return
        }

        defer resp.Body.Close()

        content, err := ioutil.ReadAll(resp.Body)
        if err != nil {
                log.Println("Read failed:", err)
                return
        }

        log.Println("content:", string(content))

}

将要发送的数据转为json格式再发送。

参考

http://www.01happy.com/golang-http-client-get-and-post/

http://blog.csdn.net/typ2004/article/details/38669949

时间: 2024-10-11 21:05:46

go http 传递json数据的相关文章

基于Web Service的客户端框架搭建一:C#使用Http Post方式传递Json数据字符串调用Web Service

引言 前段时间一直在做一个ERP系统,随着系统功能的完善,客户端(CS模式)变得越来越臃肿.现在想将业务逻辑层以下部分和界面层分离,使用Web Service来做.由于C#中通过直接添加引用的方来调用Web Service的方式不够灵活,故采取手动发送Http请求的方式来调用Web Service.最后选择使用Post方式来调用Web Service,至于安全性和效率暂不考虑.在学习使用的过程,遇到了很多问题,也花了很长时间来解决,网上相关的帖子很少,如果各位在使用的过程中有一些问题难以解决,可

利用AXIS2传递JSON数据

Axis2是目前比较流行的WebService引擎.WebService被应用在很多不同的场景.例如,可以使用WebService来发布服务端 Java类的方法,以便使用不同的客户端进行调用.这样可以有效地集成多种不同的技术来完成应用系统.WebService还经常被使用在SOA中,用于 SOA各个部分交换数据.本文重点在于如何使用AXIS2引擎实现传递JSON数据. 博主本人由于项目需要,所以就查找了关于Web Service的文章.但碍于博主对Web的不熟,所以很多也就是按照网上教程做的.或

通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中  先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面中有所体现,这里不再赘述,此篇文章主要介绍:我是如何通过js从前台获取数

Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据)

form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multipart/form-data"> {# 这里必须要请求头格式才能把上传文件的对象传过去 enctype="multipart/form-data"#} 姓名 <input type="text" name="user">

用easyui从servlet传递json数据到前端页面的两种方法

用easyui从servlet传递json数据到前端页面的两种方法 两种方法获取的数据在servlet层传递的方法相同,下面为Servlet中代码,以查询表中所有信息为例. //重写doGet方法 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stu

《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

  先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面中有所体现,这里不再赘述,此篇文章主要介绍:我是如何通过js从前台获取数据,然后通过ajax技术向后台一般处理程序传递JSON,后台又是如何获取传来的JSON,并对JSON数据转换,然后将转换后的数据写入数据库的! 介绍这些步骤实现前,先说说自己的辛酸:絮叨辛酸,是因为为了实现这个功能,我真的用了很

前端Ajax传递Json数据,后端处理两种方式

在这里只讨论在前端通过Ajax远程传输Json数据的,不讨论通过form的形式传递数据 第一种方式: 前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接受. 前端写法: 1 $().ready(function(){ 2 var obj = JSON.stringify({'userNo':'121589','processId':'15','processName':'测试审批','description':'这是一个测试'}); 3 alert(obj); 4 5

URL中传递JSON数据

我们在URL中传递数据一般都是 XX.aspx?A=1&B=2&C=你   这样传递中文也没关系,我们在后台利用Request.QueryString["C"]接受就可以了.浏览器会自动帮我们解码. 如果参数过多,这样拼接也不是很方便,这个时候我们就可以把所有的参数和值写成Json格式,然后进行传值  XX.aspx?json={"1",1,"2","2"},如果像这样写,接受的时候就只有接受一个参数了. Js

Android与PHP交互,Android传递JSON数据,PHP接受并保存数据

突然想到这样一个功能,用户使用某客户端登陆的时候,客户端做了以下两件事,一个是跳转页面,返回个人信息:第二个是将信息返回到服务器,服务器将数据保存在数据库中.这样一来用户的个人信息也就获取到了! 事不宜迟赶快实现吧! 正好我的SAE云豆还没有消耗完,我就打算用PHP做后台! 客户端与服务端传送现在比较流行传递Json字符串!(还好之前了解过Json),android将数据包装成Json格式,然后通过Httpclient发送给PHP后台,php根据属性名得到Json字符串,然后做出解析,最后保存(

Struts2中通过Ajax传递json数据

1.导入Struts2所需要的jar包 下载Struts2的jar包时,可以下载struts-2.5.13-min-lib.zip,然后放到项目的/WebContent/WEB-INF/lib路径下struts-2.5.13-min-lib只包含以下jar包: commons-fileupload-1.3.3.jar commons-io-2.5.jar commons-lang3-3.6.jar freemarker-2.3.23.jar javassist-3.20.0-GA.jar ogn