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.")