cao死我好湿好紧好爽动态视屏|精选久久久久久久久久|中文无码精品一区二区三区四季|AAA国语精品刺激对白视频|

當前位置:首頁 > 軟件開放 > 正文內容

網址重定向代碼(網址重定向是什么意思)

軟件開放5個月前 (08-16)389

最近對接易企簽,需要在用戶簽署完后把簽名文件下載并存儲到我們自己的文件存儲中心,本來在測試環(huán)境和預發(fā)環(huán)境測試都都無問題,可是,上生產后,問題就來了

最開始下載文件的代碼很簡單

URL url = new URL(fileUrl);

InputStream is = url.openStream();

ByteArrayOutputStream baos = new ByteArrayOutputStream();

IOUtils.copy(is, baos);

測試環(huán)境中,易企簽給的文件地址可以直接返回文件流,這種方式就下載小文件自然就沒什么問題,可是,當發(fā)布到生產后,直接通過上面的代碼就只能獲取到下面這樣的代碼

pFound. Redirecting to a http://open.signit.cn/v1/file/public/resources/00941ed4-bd2a-4c82-8758-2eb3760b13ee?token=6777e9df-4068-4e57-9de3-37a9387f5170resourceName=h07Ah6zzLvtmQ6CL4s4D3qin.pdf/a/p

很明顯,給的文件地址不再像預發(fā)環(huán)境那般單純了,它會302重定向,這就不好意思了,上面的代碼不能用,需要加強一下代碼邏輯,判斷響應狀態(tài)碼如果是302,再從請求頭Location中取地址進行數據流的獲取。正準備自己來處理的,突然想到項目中已經引入了強大的Hutool工具包,然后一句代碼就OK了

byte[] fileByte = HttpUtil.downloadBytes(fileUrl);

展開全文

那么,為什么它一行代碼就可以處理這個難題呢?我們來大概的看一下,首先進入到downloadBytes中

public static byte[] downloadBytes(String url) {

return HttpDownloader.downloadBytes(url);

}

最終可以跟到HttpUtil.createGet這個方法中

public static HttpRequest createGet(String url, boolean isFollowRedirects) {

return HttpRequest.get(url).setFollowRedirects(isFollowRedirects);

}

this.httpConnection = HttpConnection

.create(this.url.toURL(this.urlHandler), this.proxy)//

.setConnectTimeout(this.connectionTimeout)//

.setReadTimeout(this.readTimeout)//

.setMethod(this.method)//

.setHttpsInfo(this.hostnameVerifier, this.ssf)//

// 定義轉發(fā)

.setInstanceFollowRedirects(this.maxRedirectCount 0)

// 流方式上傳數據

.setChunkedStreamingMode(this.blockSize)

// 覆蓋默認Header

.header(this.headers, true);

public HttpResponse execute(boolean isAsync) {

// 初始化URL

urlWithParamIfGet();

// 初始化 connection

initConnection();

// 發(fā)送請求

send();

// 手動實現重定向

HttpResponse httpResponse = sendRedirectIfPossible();

// 獲取響應

if (null == httpResponse) {

httpResponse = new HttpResponse(this.httpConnection, this.charset, isAsync, isIgnoreResponseBody());

}

return httpResponse;

}

進行URL初始化后,手動設置重定向,其中maxRedirectCount是可重定向的次數,默認是2次。

private HttpResponse sendRedirectIfPossible() {

if (this.maxRedirectCount 1) {

// 不重定向

網址重定向代碼(網址重定向是什么意思)

return null;

}

// 手動實現重定向

if (this.httpConnection.getHttpURLConnection().getInstanceFollowRedirects()) {

int responseCode;

try {

responseCode = httpConnection.responseCode();

} catch (IOException e) {

// 錯誤時靜默關閉連接

this.httpConnection.disconnectQuietly();

throw new HttpException(e);

}

if (responseCode != HttpURLConnection.HTTP_OK) {

if (HttpStatus.isRedirected(responseCode)) {

setUrl(httpConnection.header(Header.LOCATION));

if (redirectCount this.maxRedirectCount) {

redirectCount++;

return execute();

}

}

}

}

return null;

}

其實它的實現方式也是上面我們提到的思路是一致的,通過遞歸方式去多次獲取返回的請求頭中的LOCATION地址,嘗試獲取最終的文件下載地址。現在這般簡便的工具類越發(fā)的多,我們在使用的同時也需要去學習工具類類的實現思路。這樣我們才不會越發(fā)被動。

掃描二維碼推送至手機訪問。

版權聲明:本文由飛速云SEO網絡優(yōu)化推廣發(fā)布,如需轉載請注明出處。

本文鏈接:http://www.smallwaterjetsystem.com/post/119798.html

分享給朋友:

“網址重定向代碼(網址重定向是什么意思)” 的相關文章

易語言反編譯工具(易語言反編譯器)

易語言反編譯工具(易語言反編譯器)

本篇文章給大家談談易語言反編譯工具,以及易語言反編譯器對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、易語言怎么將一個文件寫入exe文件(文件是易語言編譯的)里且寫完后exe文件可以繼續(xù)運行 2、怎樣把DLL反編譯成易語言源碼 3、.net,java都能被反編譯...

python網站開發(fā)模板(python 網站框架)

python網站開發(fā)模板(python 網站框架)

本篇文章給大家談談python網站開發(fā)模板,以及python 網站框架對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、python web開發(fā) 該用什么框架 2、使用python創(chuàng)建web靜態(tài)網站 3、怎么用python簡單的制作一個網頁 4、Python 有...

短信網頁在線轟炸源碼教程(在線短信驗證碼轟炸網頁版)

短信網頁在線轟炸源碼教程(在線短信驗證碼轟炸網頁版)

今天給各位分享短信網頁在線轟炸源碼教程的知識,其中也會對在線短信驗證碼轟炸網頁版進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!本文目錄一覽: 1、短信炸彈的短信炸彈 2、短信轟炸是什么意思? 3、最近被人轟炸了,好多垃圾短信,誰知道怎么轟炸人阿。求大神指教 4、短...

apk文件怎么獲取xml(手機怎么找到apk文件)

apk文件怎么獲取xml(手機怎么找到apk文件)

今天給各位分享apk文件怎么獲取xml的知識,其中也會對手機怎么找到apk文件進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!本文目錄一覽: 1、apk是什么文件?apk文件怎么打開? 2、PMS解析AndroidManifest.xml詳解 3、APK文件中的xml文...

快手直播的搞笑音效如何制作(快手咋制作音效視頻)

快手直播的搞笑音效如何制作(快手咋制作音效視頻)

今天給各位分享快手直播的搞笑音效如何制作的知識,其中也會對快手咋制作音效視頻進行解釋,如果能碰巧解決你現在面臨的問題,別忘了關注本站,現在開始吧!本文目錄一覽: 1、快手直播時 笑聲音效怎么弄的 2、快手直播笑聲怎么搞的求大神告知 3、快手里面的拍段子搞笑配音怎么弄的 4、快手搞笑段子的...

NFT博物館app下載(NFT博物館是不是真的)

NFT博物館app下載(NFT博物館是不是真的)

本篇文章給大家談談NFT博物館app下載,以及NFT博物館是不是真的對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、NFT博物館微信提現是真的嗎 2、nft博物館怎么玩 3、nft交易平臺app下載去哪里? 4、nft博物館登錄不了 5、稀物NFT平臺安卓...