curl POST form-data 多文件上传

curl版本采用 7.78.0;版本太低的话,编译会报错;
运行时,如果报错,是因为机器上的curl 版本不一致;
添加 export LD_LIBRARY_PATH =/usr/local/lib:$LD_LIBRARY_PATH

命令行格式为:

curl http://192.168.2.222:8848/face_api_v3 -F "part1=111" -F "part2=@1.jpg" -F "part3=@3.jpg" -v

cpp

#include <stdio.h>
#include <curl/curl.h>
#include <string>


int main(void)
{

    CURL* curl;
    CURLcode res;
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
        curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.2.222:8848/face_api_v3");
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
        curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
        struct curl_slist* headers = NULL;
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_mime* mime;
        curl_mimepart* part;
        mime = curl_mime_init(curl);
        part = curl_mime_addpart(mime);
        curl_mime_name(part, "part1");
        curl_mime_data(part, "tttt", CURL_ZERO_TERMINATED);
        part = curl_mime_addpart(mime);
        curl_mime_name(part, "part2");
        curl_mime_filedata(part, "3.jpg");
        part = curl_mime_addpart(mime);
        curl_mime_name(part, "part3");
        curl_mime_filedata(part, "1.jpg");
        curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
        res = curl_easy_perform(curl);
        curl_mime_free(mime);
    }
    curl_easy_cleanup(curl);
    return 0;
}

python

import requests
import threading
import json
import time
#all_img_list 是文件夹地址,内部放置的是多图片。
values = {'part1':'user'}
files_list = [("part2", ("1.jpg", open("2.jpg", "rb").read())), ("part3", ("2.jpg", open("3.jpg", "rb").read()))]


def do_task_inner():
    data = {
    'path_model': '/home/icbc/1.jpg',
    'path_upload': '/home/icbc/1.jpg'
    }
    json_data = json.dumps(data)
    # 发送POST请求
    response = requests.post('http://192.168.2.222:8848/face_api_v1', data=json_data)
# 检查响应状态码
    if response.status_code == 200:
        print('POST请求成功!')
        print(response.text)
    else:
        print('POST请求失败!')
        print('状态码:', response.status_code)

def do_task(): 
    response = requests.post("http://192.168.2.222:8848/face_api_v3", data=values, files=files_list)
    # 处理响应
    if response.status_code == 200:
        print("成功 : ", response.text)
    else:
        print("图片上传失败,状态码:", response.status_code)
        print("错误信息:", response.text)
def do_task2():
    a=1
    while a<=1000:
        do_task()
        time.sleep(0.02)
        a += 1

threads = []
for i in range(10):
    t = threading.Thread(target=do_task2)
    threads.append(t)
    t.start()  # 启动线程

# 等待所有线程完成
for t in threads:
    t.join()

print("All threads are done.")
    

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值