筆記:將一個文件服務器上的文件(一個返回文件數據的url)作為另一個http接口的請求參數

筆記:將一個文件服務器上的文件(一個返回文件數據的url)作為另一個http接口的請求參數

最近有這么個需求,需要往某一個業務的外部接口上傳文件信息,但是現在沒有現成的文件,只在數據庫存了對應的url,比如一張圖片:
CSDN個人信息默認圖片
https://profile-avatar.csdnimg.cn/default.jpg!3

現在我有這么一個地址,返回的是二進制流數據,通常http傳文件數據的話,需要通過一個具體的文件,即需要先下載文件。

在此感謝百度告訴我還有臨時文件的創建方式,我也不知道百度ai從哪里參考的代碼,在此同步感謝。

在這里使用http請求用的hutool的工具類:

<!-- hutool 的依賴配置-->
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-bom</artifactId><version>5.8.18</version>
</dependency>

下面,附上具體的實現代碼邏輯:

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import java.io.File;
import java.io.IOException;public class UploadFile {public static void main(String[] args) throws IOException {//獲取url對應的文件二進制流數據//源文件地址(可以在網頁上任意找一個圖片地址,我這里用的CSDN個人信息默認圖片)String fileUrl = "https://profile-avatar.csdnimg.cn/default.jpg!3";String fileName = "CSDN個人信息默認圖片.jpg";//獲取文件數據HttpResponse response = HttpUtil.createGet(fileUrl).execute();if(response.isOk()) {byte[] bytes = response.bodyBytes();//如果返回有數據,則上傳if(bytes != null && bytes.length > 0){//創建臨時文件int index = fileName.lastIndexOf(".");String prefix = fileName.substring(0, index);//CSDN個人信息默認圖片String suffix = fileName.substring(index);//.jpg//生成空臨時文件File tempFile = File.createTempFile(prefix, suffix);tempFile.deleteOnExit();//程序結束時自動刪除文件//寫入數據FileUtil.writeBytes(bytes, tempFile);//需要文件參數的http接口String url = "http://xxxxx/xxxxx";String result = HttpUtil.createPost(url).contentType("multipart/form-data").form("name", fileName).form("file", tempFile).execute().body();// 打印響應內容System.out.println(response.body());}}}
}

重點其實就三步:
1、通過接口獲取到文件url對應的二進制數據。
2、通過生成臨時文件,將返回的二進制數據寫入臨時文件。
3、將臨時文件作為參數發送http請求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81993.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81993.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81993.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何在 FastAPI 中合理使用 Pydantic 的 Alias

下面的內容是我跟 Gemini 2.5 Pro 探討關于Pydantic 的 Alias 問題之后&#xff0c;讓它總結的一篇技術博客。 我已經有很長一段時間沒有好好寫技術類的博客了&#xff0c;這就是原因。 可以在 https://panzhixiang.cn/ 查看更多我的博客&#xff0c;有技術的&#xff0c;也有很…

CAU人工智能class4 批次歸一化

歸一化 在對輸入數據進行預處理時會用到歸一化&#xff0c;將輸入數據的范圍收縮到0到1之間&#xff0c;這有利于避免綱量對模型訓練產生的影響。 但當模型過深時會產生下述問題&#xff1a; 當一個學習系統的輸入分布發生變化時&#xff0c;這種現象稱之為“內部協變量偏移”…

動態庫和靜態庫詳解

庫其實就是個文件 下面是文件后綴 靜態庫&#xff1a;.a(linux) .lib(windows) 動態庫&#xff1a;.so(linux) .dll(windows) 靜態庫的制作 ar -rc libmystdio.a my_stdio.o my_string.o ar是歸檔工具&#xff0c;rc表示replace和create&#xff0c;ar跟tar有點…

PDF 文檔結構化工具對比:Marker 與 MinerU

模型訓練數據-MinerU一款Pdf轉Markdown軟件 https://codeyuan.blog.csdn.net/article/details/144315141 在當前大模型&#xff08;LLM&#xff09;和自然語言處理&#xff08;NLP&#xff09;應用快速發展的背景下&#xff0c;如何高效地將 PDF 等非結構化文檔轉換為結構化數…

shp2pgsql 導入 Shp 到 PostGIS 空間數據庫

前言 ? shp2pgsql是PostGIS自帶的命令行工具&#xff0c;用于將Shapefile文件聲稱SQL腳本導入到PostGIS空間數據庫。 1. 安裝 PostGIS 通過Application Stack Builder或者下載單獨的PostGIS包進行安裝。而shp2pgsql則是與PostGIS工具集成在一起&#xff0c;無需單獨下載。該命…

【ISP算法精粹】什么是global tone mapping和local tone mapping?

1. 簡介 全局色調映射&#xff08;Global Tone Mapping&#xff09;和局部色調映射&#xff08;Local Tone Mapping&#xff09;是高動態范圍&#xff08;HDR&#xff09;圖像處理中的兩種關鍵技術&#xff0c;用于將高動態范圍圖像的亮度值映射到標準動態范圍&#xff08;LDR…

虛擬環境中VSCode運行jupyter文件

用VS Code打開jupyter文件&#xff0c;點擊右上角 Select Kernel 在正上方會出現這個選擇框&#xff0c;選擇 Python Environment 會出來所有的虛擬環境&#xff0c;選擇要用的環境行

如何計算VLLM本地部署Qwen3-4B的GPU最小配置應該是多少?多人并發訪問本地大模型的GPU配置應該怎么分配?

本文一定要閱讀我上篇文章&#xff01;&#xff01;&#xff01; 超詳細VLLM框架部署qwen3-4B加混合推理探索&#xff01;&#xff01;&#xff01;-CSDN博客 本文是基于上篇文章遺留下的問題進行說明的。 一、本文解決的問題 問題1&#xff1a;我明明只部署了qwen3-4B的模型…

antv/g6 圖譜封裝配置(二)

繼上次實現圖譜后&#xff0c;后續發現如果要繼續加入不同樣式的圖譜實現起來太過麻煩&#xff0c;因此考慮將配置項全部提取封裝到js文件中&#xff0c;圖譜組件只專注于實現各種不同的組件&#xff0c;其中主要封裝的點就是各個節點的橫坐標&#xff08;x&#xff09;,縱坐標…

從芯片互連到機器人革命:英偉達雙線出擊,NVLink開放生態+GR00T模型定義AI計算新時代

5月19日&#xff0c;在臺灣舉辦的Computex 2025上&#xff0c;英偉達推出新技術“NVLink Fusion”&#xff0c;允許非英偉達CPU和GPU&#xff0c;同英偉達產品以及高速GPU互連技術NVLink結合使用&#xff0c;加速AI芯片連接。新技術的推出旨在保持英偉達在人工智能開發和計算領…

Qt window frame + windowTitle + windowIcon屬性(3)

文章目錄 window frame屬性window frame的概念1. window frame的影響2. 圖片演示3. 代碼演示 API接口widget.cpp&#xff08;測試代碼&#xff09; windowTitle屬性API接口問題 注意點widget.cpp&#xff08;屬性用法&#xff09; windowIcon屬性API接口啥是窗口圖標玩法1. 先…

Git 分支管理:merge、rebase、cherry-pick 的用法與規范

Git 分支管理&#xff1a;merge、rebase、cherry-pick 的用法與規范 在團隊開發和個人項目中&#xff0c;合理管理 Git 分支至關重要。merge、rebase 和 cherry-pick 是最常用的三種分支操作命令。本文將介紹它們的基本用法、適用場景及最佳實踐規范&#xff0c;幫助大家更高效…

VR全景制作方法都有哪些?需要注意什么?

VR全景制作是將線下實景場景轉化為具有沉浸式體驗的全景圖像的相關技術流程。通過圖像處理和軟件拼接等手段及技術&#xff0c;可以制作出VR全景圖。后面&#xff0c;我們科普詳細的VR全景制作方法指南&#xff0c;順便介紹眾趣科技在相關領域提供的支持方案。 選定拍攝地點與準…

計算機系統結構1-3章節 期末背誦內容

Amdahl定律: 加快某部件執行速度所能獲得的系統性能加速比&#xff0c;受限于該部件的執行時間占系統中總執行時間的百分比。 加速比依賴于: 可改進比例&#xff1a;在改進前的系統中&#xff0c;可改進部分的執行時間在總的執行時間中所占的比例。 部件加速比&#xff1a;可改…

JS實現直接下載PDF文件

pdf文件通過a標簽直接下載會打開頁面&#xff0c;所以&#xff0c;請求該文件的blob文件流數據&#xff0c;再通過window.URL.createObjectURL轉成鏈接&#xff0c;就可以直接下載了。 只需要替換url和文件名稱就行&#xff0c;文件名的后綴記得要寫上pdf&#xff0c;不然會變成…

深度解析Pytest中Fixture機制與實戰案例

一、為什么我們需要Fixture&#xff1f; 在某次金融系統重構項目中&#xff0c;我們的測試團隊曾遇到這樣的困境&#xff1a;隨著測試用例增長到500&#xff0c;使用unittest框架編寫的測試代碼出現了嚴重的維護問題——setup方法臃腫不堪&#xff0c;測試數據混亂&#xff0c…

文檔結構化專家:數字化轉型的核心力量

文檔結構化專家:定義、職責與行業應用的全方位解析 一、文檔結構化的定義與核心價值 文檔結構化是將非結構化或半結構化文檔(如文本、圖像、表格)轉換為計算機可處理的規范化數據形式的過程。其核心在于通過語義解析、信息單元劃分和標準化格式(如XML/JSON),實現信息的…

Linux系統管理與編程16番外篇:PXE自動化安裝部署OpenEuler24.03LTS

蘭生幽谷&#xff0c;不為莫服而不芳&#xff1b; 君子行義&#xff0c;不為莫知而止休。 Preboot Execution Environment 本機服務器操作系統&#xff1a;CentOS7.9.2207 目標服務器安裝系統&#xff1a;openEuler-24.03-LTS-SP1-everything-x86_64-dvd.iso 虛擬機&#xff1…

Enhanced RTMP H.265(HEVC)技術規格解析:流媒體協議的新突破

Enhanced RTMP H.265&#xff08;HEVC&#xff09;技術規格解析&#xff1a;流媒體協議的新突破 “每一幀畫面都是時間的映射&#xff0c;壓縮之后的靈魂&#xff0c;依然能栩栩如生。” 隨著流媒體技術的快速發展&#xff0c;視頻編碼標準不斷推陳出新。H.264/AVC雖然已經成為…

Visual Studio Code 改成中文模式(漢化)

1、打開工具軟件&#xff08;雙擊打開&#xff09; 2、軟件左邊圖標點開 3、在搜索框&#xff0c;搜索 chinese 出現的第一個 就是簡體中文 4、點擊第一個簡體中文&#xff0c;右邊會出來基本信息 點擊 install 就可以安裝了&#xff08;記得聯網&#xff09;。 5、安裝完右…