乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      關(guān)于極光鑒權(quán)認(rèn)證一鍵登錄請(qǐng)求接口的3個(gè)相關(guān)問(wèn)題的解決方案

       看見(jiàn)就非常 2020-05-08

      今天開(kāi)始準(zhǔn)備調(diào)用極光推送的REST API發(fā)現(xiàn)報(bào)了很多錯(cuò)。postman和idea都試過(guò)了

       

      報(bào)錯(cuò)1: post請(qǐng)求接口,返回{"code":9010,"content":"missing auth"}

      出這個(gè)錯(cuò),請(qǐng)仔細(xì)查看官方文檔https://docs./jverification/server/rest_api/rest_api_summary/

      鑒權(quán)方式

      極光 REST API采用 HTTP 基本認(rèn)證的驗(yàn)證方式。基本做法為,HTTP Header 中加 Authorization:

         Authorization: Basic ${base64_auth_string} 
      

      Header 名稱(chēng)是 "Authorization", 值是 base64轉(zhuǎn)換過(guò)的 "appKey:masterSecret"(中間有個(gè)冒號(hào))。這兩者可以在極光開(kāi)發(fā)者服務(wù)的Web控制臺(tái)[應(yīng)用設(shè)置]-[應(yīng)用信息]中查看。

       

      報(bào)錯(cuò)2:

      {

      1. "code": 9011,
      2. "content": "auth failed"

      }

      出現(xiàn)這個(gè)錯(cuò)誤,十有八九是你通過(guò)postMan請(qǐng)求,把Authorization放到header里面了。。。具體的做法如圖

      而不是直接在headers里面加個(gè)Content-Type:application/json

      Authorization Basic MDQzNDdkNDU5Y2QwODZhOTFjNWRlNjU1OjY5YThmODM4ZGV-----------------------

      官方給出的解釋是:文檔里面提供的方式是restapi的方式,postmen是封裝好了的

      post此時(shí)應(yīng)該可以請(qǐng)求了。

      那么java代碼怎么寫(xiě)呢?

      1. /**
      2. * @Description 極光推送專(zhuān)用post
      3. * @Author PrinceCharmingDong
      4. * @Date 2020/3/4
      5. */
      6. public static String doPostForJpush (String url, String JSONBody,String appKey,String masterKey) {
      7. CloseableHttpResponse response = null;
      8. CloseableHttpClient httpClient = null;
      9. String responseContent = "";
      10. try {
      11. httpClient = HttpClients.createDefault();
      12. HttpPost httpPost = new HttpPost(url);
      13. httpPost.addHeader("Content-Type", "application/json");
      14. httpPost.addHeader("Authorization", "Basic " + Base64.getUrlEncoder()
      15. .encodeToString((appKey+ ":" + masterKey).getBytes()));
      16. httpPost.setEntity(new StringEntity(JSONBody));
      17. response = httpClient.execute(httpPost);
      18. HttpEntity entity = response.getEntity();
      19. responseContent = EntityUtils.toString(entity, "UTF-8");
      20. response.close();
      21. httpClient.close();
      22. System.out.println(responseContent);
      23. } catch (ClientProtocolException e) {
      24. log.error(e);
      25. } catch (IOException e) {
      26. log.error(e);
      27. } finally {
      28. close(response, httpClient);
      29. }
      30. return responseContent;
      31. }
      32. private static void close(Closeable... closeables) {
      33. if (closeables != null && closeables.length > 0) {
      34. try {
      35. for (Closeable closeable : closeables) {
      36. if (closeable != null) {
      37. closeable.close();
      38. }
      39. }
      40. } catch (IOException e) {
      41. log.error(e);
      42. }
      43. }
      44. }

      JSONBody是

      {
          "loginToken":"v3NMGQPG4x7XkKDEazzhJHoY-JdZfilhodyW5bV2U8C8pUxoCRnRoi3lkUQKjUJKD31pxPJRcO2PEdGEs04jRRbC3kHdDl5tLkACD-_I_NtcMOsEXtl3e7xnz8KpcxracnX_iXI6CPIJ5wBY9WfYaPtp30zdEy7ffcOk2F5NyWFKeup1y1k4s8aWsfGulFffE8Mzd7uQMmjCaYBm9x-------------"
      }

      這樣子的。

       

      至于請(qǐng)求返回的數(shù)據(jù)怎么處理,你應(yīng)該會(huì)將 json 字符串轉(zhuǎn)為 java bean,然后獲取里面的內(nèi)容。此處不過(guò)多贅述

      報(bào)錯(cuò)3:

      {

          "id": 287637091930615808,

          "code": 9003,

          "content": "token expired or not exist",

          "exID": null,

          "phone": null

      }

       

      這個(gè)很明顯了,loginToken是一次性的,用了就沒(méi)了,叫客戶(hù)端再給個(gè)loginToken給你。

       

       

       

       

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約