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

package main

import (
"encoding/json"
"fmt"
//"io/ioutil"
"log"
"net/http"
"net/url"
"os"
"strings"
"time"
) const IssueURL = "https://api.github.com/search/issues" type IssuesSearchResult struct {
TotalCount int `json:"total_count"`
Items []*Issue
} type Issue struct {
Number int
HTMLURL string `json:"html_url"`
Title string
State string
User *User
CreateAt time.Time `json:"create_at"`
Body string
} type User struct {
Login string
HTMLURL string `json:"html_url"`
} func SearchIssues(terms []string) (*IssuesSearchResult, error) {
q := url.QueryEscape(strings.Join(terms, " "))
urls := IssueURL + "?q=" + q
resp, err := http.Get(urls)
if err != nil {
return nil, err
}
defer resp.Body.Close() fmt.Println("start encode ...") /*web, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
fmt.Printf("web:%s\n==============\n", web)
*/
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("search query failed: %s", resp.Status)
} var result IssuesSearchResult
if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
return nil, err
}
return &result, nil
} func main() {
result, err := SearchIssues(os.Args[1:])
if err != nil {
log.Fatal(err)
}
fmt.Printf("%d issue: \n", result.TotalCount) for _, item := range result.Items {
fmt.Printf("#<%-5d> <%9.9s> <%.55s>\n\n", item.Number, item.User.Login, item.Title)
}
}

  

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

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)) }

  

//post json
package main import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http" ) type Cmd struct { ReqType int
FileName string } func main() { url := "http://127.0.0.1:8080/bar"
contentType := "application/json;charset=utf-8" cmd := Cmd{ReqType: 12, FileName: "plugin"}
b ,err := json.Marshal(cmd)
if err != nil {
log.Println("json format error:", err)
return
} 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)) }

  

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. 效果非常好的 Jquery弹出层插件 jQuery Sweet alert

    介绍款交互性非常不错的jquery弹出层插件,支持消息提示.错误提示.确认框提示等. 交互式体验感非常不错,比如咱们现在体验非常不错的微信支付.支付宝等完成后的效果. 不过本插件至少支持IE9+ Jq ...

  2. [转]James Bach:测试人员的角色

    [转]James Bach:测试人员的角色 2015-05-13 以前,我是个开发人员.我不喜欢这个工作,无尽的压力让我疲惫.我几乎从未感觉到自己的工作做得足够好.我从未有过真正的休息.如果我没做好, ...

  3. 【MySql】Java 批量插入数据库addBatch

    //addBatch批量插入数据库 public static void insertCommentToMySql(Set<String> commentList) { Iterator& ...

  4. js eval深入

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  5. linux socket can测试

    1. Overview / What is Socket CAN -------------------------------- The socketcan package is an implem ...

  6. shell自动交互之expect脚本_转

    转自:linux expect详解(ssh自动登录) shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 ...

  7. ps aux|awk -F'[ ]+' '$3>90{print $2}'|xargs -n1 kill -9

    ps aux|awk -F'[ ]+' '$3>90{print $2}'|xargs -n1 kill -9

  8. 2015 Multi-University Training Contest 5 1009 MZL's Border

    MZL's Border Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5351 Mean: 给出一个类似斐波那契数列的字符串序列 ...

  9. JavaScript的gzip静态压缩方法记录

    传统的JS压缩(删除注释,删除多余空格等)提供的压缩率有时还是不尽不意,幸亏现在的浏览器都支持压缩传输(通过设置http header的Content-Encoding=gzip),可以通过服务器的配 ...

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

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