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))
}


目录
相关文章
|
23天前
|
Python
【python】python跨文件使用全局变量
【python】python跨文件使用全局变量
|
1月前
|
Rust Java Go
Python is Easy. Go is Simple. Simple != Easy
Python以其易学易用著称,常用于初学者编程和复杂科学计算,但其解释器的复杂性和环境易变性可能导致运行时问题。Go语言则追求简单,语法稳定,编译快速,生成的二进制文件小巧、独立。Go的静态链接特性使其能在不同系统上无缝运行,而Python在数据科学和原型设计上仍具有优势。结合两者,通过Django进行快速原型验证,然后用Go重构业务逻辑和高性能部分,形成了一种有效的开发策略。
18 0
|
1月前
|
监控 数据处理 索引
使用Python批量实现文件夹下所有Excel文件的第二张表合并
使用Python和pandas批量合并文件夹中所有Excel文件的第二张表,通过os库遍历文件,pandas的read_excel读取表,concat函数合并数据。主要步骤包括:1) 遍历获取Excel文件,2) 读取第二张表,3) 合并所有表格,最后将结果保存为新的Excel文件。注意文件路径、表格结构一致性及异常处理。可扩展为动态指定合并表、优化性能、日志记录等功能。适合数据处理初学者提升自动化处理技能。
22 1
|
1月前
|
存储 并行计算 Java
Python读取.nc文件的方法与技术详解
本文介绍了Python中读取.nc(NetCDF)文件的两种方法:使用netCDF4和xarray库。netCDF4库通过`Dataset`函数打开文件,`variables`属性获取变量,再通过字典键读取数据。xarray库利用`open_dataset`打开文件,直接通过变量名访问数据。文中还涉及性能优化,如分块读取、使用Dask进行并行计算以及仅加载所需变量。注意文件路径、变量命名和数据类型,读取后记得关闭文件(netCDF4需显式关闭)。随着科学数据的增长,掌握高效处理.nc文件的技能至关重要。
144 0
|
1天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
7 3
|
2天前
|
Rust 安全 程序员
|
5天前
|
数据挖掘 API 数据安全/隐私保护
python请求模块requests如何添加代理ip
python请求模块requests如何添加代理ip
|
6天前
|
存储 Python
用Python实现批量下载文件——代理ip排除万难
用Python实现批量下载文件——代理ip排除万难
|
7天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
7天前
|
JSON 关系型数据库 数据库
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
《Python 简易速速上手小册》第6章:Python 文件和数据持久化(2024 最新版)
33 0

热门文章

最新文章