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语言编写一个转码服务”的全面内容,想了解更多关于 后端开发 内容,请继续关注web建站教程。
当前网址:https://ipkd.cn/webs_4350.html
workflows工作流
- 一座巨大的野兽派建筑漂浮在热带风景中的贫民
- 五颜六色的球花comfyui工作流
- 蘑菇屋,梦幻家园comfyui工作流
- 斗鸡场威武雄鸡ComfyUI工作流
- 星空星域星球comfyui工作流
- 一个20岁丰满的女孩ComfyUI工作流
- 一只黑色章鱼ComfyUI工作流
- 彩色雄鹰玉雕ComfyUI工作流
猜你喜欢
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!