跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • net/http 返回状态码是非 200 获取响应体疑问
未分類
16 6 月 2020

net/http 返回状态码是非 200 获取响应体疑问

net/http 返回状态码是非 200 获取响应体疑问

資深大佬 : ropon 6

net/http 包请求一个 URL 地址,返回状态码是非 200,比如 400,如何获取响应体的内容呢?

测试结果:

  • 使用 postman 、Python requests 库获取内容
{     "errcode": 4023,     "errmsg": "认证失败" } 
  • 使用 go net/http 包 获取内容
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>400 Bad Request</title> <h1>Bad Request</h1> <p>The browser (or proxy) sent a request that this server could not understand.</p> 

net/http 包是否状态码 200 才读响应体的内容呢?

大佬有話說 (5)

  • 資深大佬 : CEBBCAT

    net/http 只有在 err 不为 nil 时才不可以读取 resp.Body,底下那个就是 server 返回的消息体。

    你可以使用 netcat 监听本地一个端口,对比 postman 或 rewuests 的请求与 net/http 的请求有什么差异。

    上面那个是 JSON,底下那个看着像是 HTTP 服务器默认的错误页面。所以你确认 postman 和 go 代码测试的是同一个服务器吗? postman 那个也是 400 错误吗?

    你需要补一点 HTTP 特别是 TCP 基础,这样你就明白无论什么 postman 还是 requests 都可以通过 telnet 来替代。

    以及你八成还要学学《提问的智慧》,若是可以,还可以搜搜 coolshell 的『 XY 问题』

  • 資深大佬 : Vegetable

    不对的,你两个请求返回内容不一样。
    后边的 html 就是 body,显然不是你说的 json,应该是请求的部分错了。

  • 資深大佬 : CEBBCAT

    看起来像是个前辈……奇怪……

  • 主 資深大佬 : ropon

    应该是程序问题( https://github.com/Ropon/newpanel ),新写一个 demo 又是对的。
    D:SeafileGosrctest>gor
    {“errcode”: 4025, “errmsg”: “this is test”}

  • 主 資深大佬 : ropon

    找到问题了,是这行引起的
    # api = Api(site_bp, default_mediatype=”application/json;charset=utf-8″)
    api = Api(site_bp)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具