http请求及json发送与解析 post string
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的更多相关文章
- android通过httpClient请求获取JSON数据并且解析
使用.net创建一个ashx文件,并response.write json格式 public void ProcessRequest(HttpContext context) { context.R ...
- Android okHttp网络请求之Json解析
前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...
- 发送Ajax请求获取JSON格式数据
Aspx前端页面: <script type="text/javascript"> $(function () { $.getJSON("Ajax/TestA ...
- Flutter网络请求与JSON解析
本文介绍如何在Flutter中创建HTTP网络请求和对请求的json string进行类型解析. 网络请求 官方使用的是用dart io中的HttpClient发起的请求,但HttpClient本身功 ...
- Java发送Post请求,参数JSON,接收JSON
/** * 发送post请求 * @param url 路径 * @param jsonObject 参数(json类型) * @param encoding 编码格式 * @return * @th ...
- 使用Retrofit发送POST请求提交JSON数据
Retrofit官网:https://square.github.io/retrofit/ 示例如下 HttpService.java import okhttp3.RequestBody; impo ...
- android基础---->JSON数据的解析
上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...
- iOS开发——实战篇Swift篇&UItableView结合网络请求,多线程,数据解析,MVC实战
UItableView结合网络请求,多线程,数据解析,MVC实战 学了这么久的swift都没有做过什么东西,今天就以自己的一个小小的联系,讲一下,怎么使用swift在实战中应用MVC,并且结合后面的高 ...
- 网络HTTP、JSON、XML解析等 复习
一.一个HTTP请求的基本要素1.请求URL:客户端通过哪个路径找到服务器 2.请求参数:客户端发送给服务器的数据* 比如登录时需要发送的用户名和密码 3.返回结果:服务器返回给客户端的数据* 一般是 ...
随机推荐
- location 禁止多目录
[root@web01 default]# mkdir cron templates [root@web01 default]# tree . ├── cron └── templates direc ...
- wifi免密码登录认证流程
您查询的关键词是:weixin:,qrgex_zm- 以下是该网页在北京时间 2016年03月27日 02:46:42 的快照: 如果打开速度慢,可以尝试快速版:如果想保存快照,可以添加到搜藏:如果想 ...
- 每日英语:Why Chinese Companies Lack Homegrown Luxury Brand Power
Chinese companies build iPads, high-speed trains and world-class telecom gear, but they can't seem t ...
- spring-boot 中application.properties的各种配置
###########################################################datasource connect mysql################# ...
- (转)Sql Server之旅——第八站 复合索引和include索引到底有多大区别?
索引和锁,这两个主题对我们开发工程师来说,非常的重要...只有理解了这两个主题,我们才能写出高质量的sql语句,在之前的博客中,我所说的 索引都是单列索引...当然数据库不可能只认单列索引,还有我这篇 ...
- java 清除 bom
参考工具 http://akini.mbnet.fi/java/unicodereader/ Utf8BomRemover 清除bom的方法 package cn.com.do1.component ...
- udacity android 实践笔记: lesson 4 part b
udacity android 实践笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...
- SQL Server从读写频繁的大表中删除大批量数据
如果我们直接用delete from语句来删除读写频繁的大表中的数据,很有可能会因为where的条件是全表扫描从而导致整个表被锁住了.如果该表是读写频繁的生产库那简直就是一场灾难,所有的线上读写请求都 ...
- 考虑下面两个JSP文件代码片断: test1.jsp:
<HTML> <BODY> <% pageContext.setAttribute(”ten”,new Integer(10));%> //1 </BODY& ...
- 【Python】用文本打印树
From:http://zhidao.baidu.com/link?url=O8U5TynGBMojDw2iFhlghPPf5_ZE1X8CAQMrK19pv-KxhvKCc6Z2yzsoQaukgN ...