網(wǎng)站首頁 編程語言 正文
因為工作需要,最近開始學(xué)習(xí)Python;而項目上用到了永中文檔轉(zhuǎn)換服務(wù),就想著要不要拿這個練練手。仰仗于Python的易用性,不一會就完成了。現(xiàn)在總結(jié)一下,作為二者的簡單學(xué)習(xí)筆記。
1 上傳文件再轉(zhuǎn)換
查看了對應(yīng)的接口文檔后,先來上傳一個文件試試:
def upload():
? ?url = 'http://172.18.21.87:48080/fcscloud/file/upload'
? ?header = {"Content-Type": "multipart/form-data"}
? ?file = {"file": open('score.xlsx', 'rb')}
? ?result = requests.post(url=url, files=file).json()
? ?print(json.dumps(result, sort_keys=True, indent=2, ensure_ascii=False))
操作成功,文件已經(jīng)上傳,data里就是文件的相對路徑了;知道返回數(shù)據(jù)之后,就可以再調(diào)用convert接口進(jìn)行轉(zhuǎn)換:
def upload():
? ?url = 'http://172.18.21.87:48080/fcscloud/file/upload'
? ?header = {"Content-Type": "multipart/form-data"}
? ?file = {"file": open('score.xlsx', 'rb')}
? ?result = requests.post(url=url, files=file).json()
? ?return result['data']['data']
def convert(srcRelativePath):
? ?url = 'http://172.18.21.87:48080/fcscloud/composite/convert'
? ?data = {'convertType': 61, 'srcRelativePath': srcRelativePath}
? ?result = requests.post(url=url, data=data).json()
? ?print(json.dumps(result, sort_keys=True, indent=2, ensure_ascii=False))
if __name__ == '__main__':
? ?convert(upload()) ? ?
這邊改動一下,把upload接口返回的結(jié)果,作為參數(shù)傳給convert,并且指定convertType也就是轉(zhuǎn)換類型(針對office文件可以用61),同樣返回一個json結(jié)果。
json結(jié)果中包含了一些基本信息,如轉(zhuǎn)換時間、文件信息、轉(zhuǎn)換類型、及錯誤代碼等等;而viewUrl就是文檔在線預(yù)覽的地址,復(fù)制到瀏覽器打開看下
2 復(fù)合型接口
剛才是先上傳文件,再進(jìn)行轉(zhuǎn)換的,有沒有更簡單的辦法合二為一呢?永中文檔轉(zhuǎn)換服務(wù)就提供了這樣的復(fù)合型接口:
def upload_and_convert():
? ?url = 'http://172.18.21.87:48080/fcscloud/composite/upload'
? ?header = {"Content-Type": "multipart/form-data"}
? ?file = {"file": open('score.xlsx', 'rb')}
? ?data = {"convertType": 61, ? ? ? ? ? ? ? ? ? #轉(zhuǎn)換類型
? ? ? ? ? ?"wmColor":"blue", ? ? ? ? ? ? ? ? ? ?#水印顏色
? ? ? ? ? ?"wmContent":"永中文檔轉(zhuǎn)換服務(wù)", ? ? ? #水印內(nèi)容
? ? ? ? ? ?"wmSize":"50", ? ? ? ? ? ? ? ? ? ? ? #水印大小
? ? ? ? ? ?"wmRotate":0} ? ? ? ? ? ? ? ? ? ? ? ?#水印角度
? ?result = requests.post(url=url, files=file, data=data).json()
? ?# print(result)
? ?print(result['data']['viewUrl'])
根據(jù)上文里展示里的json結(jié)果,就可以豐富場景和業(yè)務(wù)了,比如根據(jù)錯誤代碼來判斷是否轉(zhuǎn)換成功等等,這邊為了展示效果,暫時沒有考慮一些異常,只取viewUrl預(yù)覽;同時在參數(shù)中,額外加了一些水印相關(guān)參數(shù),看看水印的效果如何:
3 針對在線文檔的轉(zhuǎn)換接口
考慮到現(xiàn)在很多文件都是在線的,而不手動上傳,永中文檔轉(zhuǎn)換服務(wù)還提供了針對在線文檔的轉(zhuǎn)換接口:
def http_file():
? ?url = 'http://172.18.21.87:48080/fcscloud/composite/httpfile'
? ?data = {"convertType": 61,
? ? ? ? ? ?'fileUrl': "http://172.18.21.87:48080/fcscloud/view/preview/gN-L5i-rqfV3L-5YwdyhbocM4AFZ1qLaNOfR58wqmPzq5yl6Ozaox5FtkOeT3U2dcGH7iZIGEkHe2cYS19931fYVW1WmGxqScQcqTmqfF4k0XJ0n9T43tS0XAWUC9i7ylCA8riwx8vqdy7cdU_MPpdgABhrxJFXkl6fhGj__qRG6-3WWebp0p1RxMpuuGaZNpYzDMjwIfyBsOskCvCMmx1Zm9_hzBCke2CNkWIw2a6lrQXYRDSmEwT8IHxRFsYnKfQ0RnNAc5xTKZVi4ovzMANI5IY9vfOIBLjZyTH4XSj9aAzvjNn69flAzLSbU4aGzgU3VyTFbTwIO3jgfWCPmDYBxOikkjBh7bji6xtunWsA=/"}
? ?result = requests.post(url=url, data=data).json()
? ?print(result['data']['viewUrl'])
同樣只取viewUrl預(yù)覽,在瀏覽器中訪問鏈接
如果出現(xiàn)以下的錯誤,說明無法下載到在線文件,想想這也很合理:如果都無法獲取文件,又何如進(jìn)行轉(zhuǎn)換和預(yù)覽呢?
4 小結(jié)
好了,關(guān)于永中文檔轉(zhuǎn)換的服務(wù)就先介紹到這。總的來說,接口調(diào)用簡單,加上使用過程并不復(fù)雜,并且文件預(yù)覽的效果也很好。當(dāng)然,由于剛剛接觸Python,有不足之處,還請各位大佬多多指教,哈。
原文鏈接:https://juejin.cn/post/7094086748778528782
相關(guān)推薦
- 2022-11-23 GoLang切片并發(fā)安全解決方案詳解_Golang
- 2022-07-03 C語言中二級指針解析(指向指針的指針)_C 語言
- 2022-06-23 muduo源碼分析之TcpServer模塊詳細(xì)介紹_Redis
- 2022-12-27 手把手教你實現(xiàn)一個C++單鏈表_C 語言
- 2022-12-16 Python中選擇結(jié)構(gòu)實例講解_python
- 2022-05-13 eslint-disable-next-line no-prototype-builtins
- 2022-04-28 使用Matlab制作簡易版八分音符醬游戲_C 語言
- 2022-08-20 python3?最常用的三種裝飾器語法匯總_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支