国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

jmeter下載base64加密版pdf文件

這篇具有很好參考價(jià)值的文章主要介紹了jmeter下載base64加密版pdf文件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、何為base64加密版pdf文件

如下圖所示,接口jmeter執(zhí)行后,返回一串包含大小寫英文字母、數(shù)字、+、/、=的長(zhǎng)字符串,直接另存為pdf文件后,文件有大小,但是打不開;另存為doc文件后,打開可以看到和接口響應(yīng)一致的長(zhǎng)字符串。

jmeter下載base64加密版pdf文件,jmeter,問題及示例,jmeter,pdf

仔細(xì)查看該接口具體信息,感覺和ContentType: application/octet-stream、Content-Disposition: form-data; name="attachment"; filename="1664(xxxxxxx).pdf"這兩個(gè)字段有關(guān)系,各種百度后,發(fā)現(xiàn)ContentType: application/octet-stream是告訴瀏覽器返回的內(nèi)容是二進(jìn)制字節(jié)流,瀏覽器處理字節(jié)流的默認(rèn)方式是下載,在文件下載場(chǎng)景中,接口返回的內(nèi)容是文件流,設(shè)置Content-Disposition: form-data; name="attachment"; filename="1664(xxxxxxx).pdf"后,瀏覽器會(huì)進(jìn)行下載,且下載的文件名稱為 1664(xxxxxxx).pdf。


Application/octet-stream是應(yīng)用程序文件的默認(rèn)值。意思是未知的應(yīng)用程序文件,瀏覽器一般不會(huì)自動(dòng)執(zhí)行或詢問執(zhí)行。瀏覽器會(huì)像對(duì)待,設(shè)置了HTTP頭Content-Disposition值為attachment的文件一樣來對(duì)待這類文件,即瀏覽器會(huì)觸發(fā)下載行為。

參考的鏈接:application/octet-stream-CSDN博客、HTTP請(qǐng)求頭Content-Type總結(jié)說明_content-type: application/octet-stream-CSDN博客

jmeter下載base64加密版pdf文件,jmeter,問題及示例,jmeter,pdf

從上可知,接口返回后瀏覽器需要進(jìn)行一些操作,若想jmeter直接將響應(yīng)另存為文件,百度了下可以添加BeanShell PostProcessor組件,獲取接口響應(yīng)結(jié)果,另存為pdf文件,結(jié)果另存的pdf文件打不開,但是顯示大小為480KB,這是為啥呢?

接口響應(yīng)這么一長(zhǎng)串字符串,百度百度,感覺該長(zhǎng)字符串是base64加密了,向開發(fā)確認(rèn)后,開發(fā)提供了一個(gè)在線base64編碼轉(zhuǎn)pdf的網(wǎng)頁(yè),第一次將響應(yīng)內(nèi)容粘貼進(jìn)去,點(diǎn)擊查看pdf后,看不到pdf文件,將長(zhǎng)字符串兩端的雙引號(hào)刪除后,再次點(diǎn)擊查看pdf后,pdf顯示正常了;在線base64編碼轉(zhuǎn)pdf的網(wǎng)頁(yè)鏈接如下:Base64 to PDF | Base64 Decode | Base64 Converter | Base64Convert Base64 to PDF online using a free decoding toolhttps://base64.guru/converter/decode/pdf那么,怎么jmeter接口調(diào)用成功后,另存為pdf文件呢——需要進(jìn)行base64解密,最開始使用byte[] decoder = Base64.getDecoder().decode(b64);進(jìn)行解密,執(zhí)行到該行后,拋出異常了,百度異常后,說是參數(shù)異常,各種百度,沒能夠得到解決, 最后發(fā)現(xiàn)一篇可能是jdk版本不同解密方法不同引發(fā)的,使用byte[] decoder = Base64.getMimeDecoder().decode(b64)試試看,哇我解密成功,另存的pdf打開正常。

參照的鏈接:application/octet-stream-CSDN博客

jmeter下載base64加密版pdf文件,jmeter,問題及示例,jmeter,pdf

二、base64解密另存為pdf文件

如下圖所示,在需要下載pdf文件的接口下,添加BeanShell PostProcessor組件,獲取接口響應(yīng)結(jié)果,進(jìn)行base64解密后,另存為pdf文件。

jmeter下載base64加密版pdf文件,jmeter,問題及示例,jmeter,pdf

如上圖所示,點(diǎn)擊右上角的log面板圖標(biāo),可以打開log面板,log.info、log.error可以給jmeter log面板輸出自己需要顯示的調(diào)試信息,以便調(diào)試代碼,具體的代碼如下。文章來源地址http://www.zghlxwxcb.cn/news/detail-835682.html

import java.io.File;
import java.util.Base64;
import java.io.FileOutputStream;

//獲取接口響應(yīng)結(jié)果
//String responseData = prev.getResponseDataAsString();
byte[] responseData1 = prev.getResponseData();


//定義導(dǎo)出pdf文件目錄及文件名稱
private String filePath = "D:/Tools/apache-jmeter-5.4.1/workspace/導(dǎo)出-${index}.pdf"; 
File file = new File(filePath);
FileOutputStream fos = new FileOutputStream(file);
try {
    //log.info("----------1------------");
    //log.info("--------"+new String(responseData1)+"--------");
    //將獲取的接口響應(yīng)結(jié)果進(jìn)行base64解密
    byte[] decoder = Base64.getMimeDecoder().decode(responseData1);
    //log.info("----------2------------");
    //將解密結(jié)果寫入pdf文件
    fos.write(decoder);
    //log.info("-------PDF File Saved---------");
} catch (Exception e) {
    log.error("------error------------",e);
} finally {
    if (fos != null) {
    fos.close();
    fos = null;
    }
}

到了這里,關(guān)于jmeter下載base64加密版pdf文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包