第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)教一個(gè)Restemplate遠(yuǎn)程調(diào)用騰訊云API的問(wèn)題

請(qǐng)教一個(gè)Restemplate遠(yuǎn)程調(diào)用騰訊云API的問(wèn)題

慕仙森 2019-01-18 20:30:46
最近學(xué)習(xí)使用Spring的Restemplate進(jìn)行遠(yuǎn)程調(diào)用接口,騰訊那邊的API文檔要求的是json格式,需要設(shè)置請(qǐng)求頭有三個(gè)字段:Host,Content-Type,Authorization(具體可看API文檔:https://cloud.tencent.com/doc...,請(qǐng)求參數(shù)數(shù)據(jù)可用,編碼如下 public R checkPhoto(Map<String,Object> param){ // 通過(guò)param可以拿到需要的參數(shù) ...... String authtion = null; try { // 簽名有效時(shí)長(zhǎng)為 3600 秒 authtion = SignUtil.appSign(appid,g.getSecretId(),g.getSecretKey(),Constant.TX_COS_BUCKET_AUTHINFO,3600); } catch (Exception e) { e.printStackTrace(); log.error("簽名生成失敗"); return R.error("簽名生成失敗"); } // 設(shè)置請(qǐng)求頭 HttpHeaders requestHeader = new HttpHeaders(); requestHeader.setContentType(MediaType.APPLICATION_JSON); requestHeader.add("Host","recognition.image.myqcloud.com"); requestHeader.add("Authorization",authtion); // 設(shè)置請(qǐng)求體參數(shù) Map<String,Object> paramMap = new HashedMap(); paramMap.put("appid",appid); paramMap.put("urlA",urlA); paramMap.put("urlB",urlB); // 轉(zhuǎn)換參數(shù)為 JSON 對(duì)象并調(diào)用postForObject發(fā)起post請(qǐng)求 String str = JSON.toJSONString(paramMap); JSONObject json = JSON.parseObject(str); HttpEntity<JSONObject> request = new HttpEntity<JSONObject>(json,requestHeader); String response = this.restTemplate.postForObject(Constant.TX_FACE_URL_HTTP,request,String.class); ....... } 這里貼出Service的部分代碼,請(qǐng)教各位大神為什么使用JSONObject的請(qǐng)求參數(shù)會(huì)報(bào)錯(cuò)400,而下面我使用POJO的方式,將請(qǐng)求參數(shù)封裝起來(lái)可以得到成功調(diào)用 public R checkPhoto(Map<String,Object> param){ // 通過(guò)param可以拿到需要的參數(shù) ...... String authtion = null; try { // 簽名有效時(shí)長(zhǎng)為 3600 秒 authtion = SignUtil.appSign(appid,g.getSecretId(),g.getSecretKey(),Constant.TX_COS_BUCKET_AUTHINFO,3600); } catch (Exception e) { e.printStackTrace(); log.error("簽名生成失敗"); return R.error("簽名生成失敗"); } // 設(shè)置請(qǐng)求頭 HttpHeaders requestHeader = new HttpHeaders(); requestHeader.setContentType(MediaType.APPLICATION_JSON); requestHeader.add("Host","recognition.image.myqcloud.com"); requestHeader.add("Authorization",authtion); // *******************區(qū)別上一份代碼**************************// // 設(shè)置請(qǐng)求體參數(shù) TxAPIDto dto = TxAPIDto.builder().appid(g.getAppId()).urlA(urlA).urlB(urlB).build(); HttpEntity<TxAPIDto> request = new HttpEntity(dto,requestHeader); ResponseEntity<TxAPIDto> apiresponse = this.restTemplate.exchange(Constant.TX_FACE_URL_HTTP, HttpMethod.POST,request,TxAPIDto.class); TxAPIDto respnose = apiresponse.getBody(); ....... } 使用DTO的方式可以成功調(diào)用,但是使用這種方式繼續(xù)調(diào)用騰訊OCR識(shí)別接口(相比上一個(gè)接口參數(shù)和返回內(nèi)容復(fù)雜了些,API:https://cloud.tencent.com/doc...,江湖救急,跪謝大神!!
查看完整描述

3 回答

?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

最后發(fā)現(xiàn)是騰訊接口的尿性,參數(shù)值是動(dòng)態(tài)的圖片鏈接,換成最新的就好了!

查看完整回答
反對(duì) 回復(fù) 2019-02-12
?
鴻蒙傳說(shuō)

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

有DTO為啥要用JsonObject…

查看完整回答
反對(duì) 回復(fù) 2019-02-12
  • 3 回答
  • 0 關(guān)注
  • 848 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)