2016-07-14 35 views
1

即時通訊使用的示例代碼來調用情緒API,但我有一個401錯誤,我不能識別錯誤我有微軟的情感API一個401錯誤在Java

結果:{「錯誤」:{「代碼「:」未經授權「,」消息「:」由於無效訂閱密鑰而導致訪問被拒絕。請確保您訂閱了正在嘗試調用的API並提供正確的密鑰。「 }}

HttpClient cliente = HttpClients.createDefault(); 

    String key ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 

    try{ 
     URIBuilder builder= new URIBuilder("https://api.projectoxford.ai/emotion/v1.0/recognize"); 
     URI uri = builder.build(); 
     HttpPost request = new HttpPost(uri); 

     request.setHeader("Content-type","application/json"); 
     request.setHeader("Opc-Apim-Subscription-Key",key); 

     StringEntity reqEntity = new StringEntity("\"url\": \"http://am-elsalv-cdn.agilecontents.com/resources/jpg/5/3/1458595472835.jpg\""); 
     request.setEntity(reqEntity); 

     HttpResponse response = cliente.execute(request); 
     HttpEntity entity = response.getEntity(); 

     if(entity!=null){ 
      System.out.println(EntityUtils.toString(entity)); 
     } 

    }catch(Exception e){ 
     System.out.println(e.getMessage()); 
    } 
+0

我認爲我們的前端服務器中的某些帳戶可能存在問題。你可以再試一次嗎? – cthrash

回答

0

當您使用無效訂閱密鑰來調用我們的API時,通常會顯示401錯誤。這可能是由於多種原因造成的:

  1. http://www.microsoft.com/cognitive-services/en-us/subscriptions中拔出密鑰時出現複製/粘貼錯誤,導致密鑰不正確。此外,請確保您的密鑰中沒有前導空格或尾隨空格(它看起來不像代碼中的內容,而是要求完整性)。
  2. 如果您的密鑰在以前工作並且現在不再有效,您可能超出每月配額(呼叫次數)或試圖爲您的密鑰支持的TPS(每秒交易次數)過快撥打電話。您可以通過轉到訂閱頁面,查找情感訂閱,然後單擊「顯示配額」來檢查密鑰的狀態。
  3. 目前正在進行服務中斷。如果您認爲是這種情況,請通過[email protected]告訴我們。

如果您嘗試過所有這些事情,但仍然遇到問題,請嘗試使用您的訂閱密鑰通過我們的測試控制檯進行API調用。如果仍然失敗,請通過查找Emotion API在識別頁面重新生成密鑰,確定密鑰列,然後在不工作的密鑰下單擊「重新生成」。請注意,您必須更新對舊密鑰的所有引用,因爲這將完全使其無效,而轉而使用新生成的密鑰。

+0

請注意請求標題中的拼寫錯誤。它應該是'Ocp-Apim-Subscription-Key'(Opc-> Ocp) – cthrash