Python和Go 同时发送文件和formdata请求

简介: Python和Go 同时发送文件和formdata请求

前言


用到这个主要是做图片上传, python的好写, go的找各种文档真的挺费劲的…


Python

# 获取字节流
with open("/Users/xiaofei/Downloads/ywdhzxf.jpg", "rb") as f:
    res = f.read()
print(res)
# 发送请求
resp = requests.post(url='http://127.0.0.1/pic/upload', files={'file_stream': res},
                     data={'route_str': 'xiaofei/1d7608ac3d4bdaa28c0bdc1805f03fc2.jpg'},
                     headers={'enctype': 'mutlipart/form-data'})
print(resp.text)

Go

package main
import (
  "bytes"
  "fmt"
  "io/ioutil"
  "mime/multipart"
  "net/http"
  "os"
  "io"
)
func main() {
  var buff bytes.Buffer
  writer := multipart.NewWriter(&buff)
  // 添加form表单参数, 可以添加多个
  writer.WriteField("route_str", "xiaofei/1d7608ac3d4bdaa28c0bdc1805f03fc2.jpg")
  w, _ := writer.CreateFormFile("file_stream", "ywdhzxf.jpg")
  fd1, _ := os.Open("/Users/xiaofei/Downloads/ywdhzxf.jpg")
  defer fd1.Close()
  // 把文件流写入到缓冲区里去
  _, _ = io.Copy(w, fd1)
  writer.Close()
  //w.Write([]byte("this is a byte"))  如果有字节流直接写入就可以
  var client http.Client
  // 发送请求
  resp, err := client.Post("http://127.0.0.1/pic/upload", writer.FormDataContentType(), &buff)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer resp.Body.Close()
  data, _ := ioutil.ReadAll(resp.Body)
  fmt.Println(string(data))
}


目录
相关文章
|
24天前
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
64 2
|
2月前
|
Linux Go iOS开发
Go语言100个实战案例-进阶与部署篇:使用Go打包生成可执行文件
本文详解Go语言打包与跨平台编译技巧,涵盖`go build`命令、多平台构建、二进制优化及资源嵌入(embed),助你将项目编译为无依赖的独立可执行文件,轻松实现高效分发与部署。
|
2月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
821 2
|
1月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
2月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
4月前
|
数据采集 JSON 自然语言处理
Go语言实战案例-统计文件中每个字母出现频率
《Go语言100个实战案例》中的“文件与IO操作篇 - 案例19”教你如何统计文本文件中每个英文字母的出现频率。通过实战练习,掌握文件读取、字符处理、map统计等基础技能,适合Go语言初学者提升编程能力。
|
4月前
|
数据采集 Go
Go语言实战案例-批量重命名文件
《Go语言100个实战案例》中的“文件与IO操作篇 - 案例17:批量重命名文件”,适合初学者学习使用 Go 操作文件系统,实现文件批量重命名功能,包括添加前缀、后缀或编号等。
|
3月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
136 0
|
4月前
|
JSON 缓存 Go
Go语言实战案例-向文件写入内容
本案例讲解如何使用 Go 语言向文件写入内容,涵盖覆盖写入与追加写入两种模式,适用于日志记录、报告生成等场景。涉及 `os.WriteFile`、`os.OpenFile` 等核心函数,并演示如何处理文件权限与编码问题。
|
4月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。

热门文章

最新文章

推荐镜像

更多