web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 地图大全
  5. AIGC工具
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站
    手机应用

如何利用golang语言编写一个转码服务

605 ℃

golang语言开发中,如何编写一个转码服务?下面web建站小编给大家简单介绍一下具体实现代码!

客户端调用代码

package main

import (
  "fmt"
  "net/http"
  "strconv"
)
 
func main() {
  res, err := http.Get("http://localhost:8080?url=https://www.chinesegamer.net/gbk.html")
  if err != nil {
    fmt.Println(err.Error())
    return
  }
  defer res.Body.Close()
 
  contentType := res.Header.Get("Content-Type")
  if len(contentType) > 0 {
    contentType = contentType + "; "
  }
  contentType = contentType + "charset=utf-8"
  res.Header.Set("Content-Type", contentType)
  if res.StatusCode != 200 {
    fmt.Println("response Status:", res.Status)
    return
  }
 
  buf := make([]byte, 1024)
  for {
    n, err := res.Body.Read(buf)
    if n == 0 || err != nil {
      break
    }
    fmt.Print(string(buf[:n]))
  }
}

服务端代码调用

package main
 
import (
  "net/http"
  "log"
  "io/ioutil"
  "golang.org/x/net/html/charset"
)
 
func main() {
  http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
    url := request.URL.Query().Get("url")
    resp, err := http.Get(url)
    if err != nil {
      log.Printf("Error fetch url: %v", err)
      http.Error(writer, err.Error(), http.StatusInternalServerError)
      return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
      log.Printf("Error reading body: %v", err)
      http.Error(writer, err.Error(), http.StatusInternalServerError)
      return
    }
    srcCharSet, destBody, err := charset.ToUTF8(body, "")
    if err != nil {
      log.Printf("Error convert charset: %v", err)
      http.Error(writer, err.Error(), http.StatusInternalServerError)
      return
    }
    writer.Header().Set("Content-Type", resp.Header.Get("Content-Type"))
    writer.Write(destBody)
  })
 
  log.Fatal(http.ListenAndServe(":8080", nil))
}

如何利用golang计算一个数的平方(附代码并输出结果)

golang常用的函数有哪些(函数基本用法介绍)

golang如何实现全部转换为同一种编码方式(防止字符乱码)

golang如何实现HTTP链接跳转

标签: golang 转码服务

上面是“如何利用golang语言编写一个转码服务”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_4350.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > 后端开发
本文共计1414个字,预计阅读时长10分钟

基金从业资格考试题库

一站式备考基金从业资格考试,收录2021-2025年模拟题库!呱呱工具箱

在线育儿补贴计算器

快来看看你到底可以领到多少补贴!

生活小工具

收录了万年历、老黄历、八字智能排盘等100+款小工具!生活小工具
上一篇: VS Code如何用正则表达式批量替换
下一篇: 一个治愈系免费可商用的日系手绘插画资源网站——VectorShelf
x 打工人ai神器