2015-11-21 190 views
1

我正在嘗試整合Qiniu SDK進行音頻上傳。根據它的文檔,我們首先需要獲得訪問令牌。 因爲我們需要在任何api調用中傳遞AccessToken。Qiniu:總是返回「405不允許」

http://developer.qiniu.com/docs/v6/api/reference/acc/access-token.html

我試圖調用API與以下數據。

host : http://acc.qbox.me 
method : POST 
Parameters : 
grant_type = password 
username = <username> 
password = <password> 

但還是把它給我下面的響應

<html> 
<head><title>405 Not Allowed</title></head> 
<body bgcolor="white"> 
<center><h1>405 Not Allowed</h1></center> 
<hr><center>nginx/1.4.4</center> 
</body> 
</html> 

請任何可以引導我什麼是錯了進去。

+0

405是方法不允許的。你確定你的服務支持POST嗎? –

回答

2

php sdk提供了accesstoken函數。 驗證類是在這裏:https://github.com/qiniu/php-sdk/blob/master/src/Qiniu/Auth.php

在您的項目中,您應該需要此文件。 有許多例子在這裏:https://github.com/qiniu/php-sdk/tree/master/examples

這裏是上傳令牌的例子:

<?php 
require_once '/path/to/autoload.php'; 
use Qiniu\Auth; 
$accessKey = 'Access_Key'; 
$secretKey = 'Secret_Key';  
$auth = new Auth($accessKey, $secretKey); 
$bucket = 'Bucket_Name'; 
$upToken = $auth->uploadToken($bucket); 
echo $upToken; 

希望它可以幫助你。

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/10291644) –

+1

感謝您的建議,我編輯了它 – rwifeng

+1

我在我的Mac上安裝xampp。之後,我把「php-sdk-master」放在「htdocs」文件夾中。我通過更改Accesskey&screteKey來測試「download_token.php」。 –

1

如果您使用iOS 9 SDK,則由於ATP(應用程序傳輸安全性),您的所有呼叫都應使用https。如果你想有異常,需要允許特定的HTTP調用,您應該例外添加到您的.plist文件:

key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>http://acc.qbox.me</key> 
     <dict> 
      <key>NSIncludesSubdomains</key> 
      <false/> 
      <key>NSExceptionAllowsInsecureHTTPLoads</key> 
      <false/> 
      <key>NSExceptionRequiresForwardSecrecy</key> 
      <true/> 
      <key>NSExceptionMinimumTLSVersion</key> 
      <string>TLSv1.2</string> 
      <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> 
      <false/> 
      <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
      <true/> 
      <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
      <string>TLSv1.2</string> 
      <key>NSRequiresCertificateTransparency</key> 
      <false/> 
     </dict> 
    </dict> 
</dict> 

,你甚至可以讓所有的HTTP流量,加入這個您的.plist文件(但蘋果不建議這樣):

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 
+0

我正在使用iOS 8. –

+0

我也在google crome商店的POSTMAN工具上測試。 它也給了我相同的結果 –

+0

嘗試用https而不是http調用它。通過http傳遞用戶名和密碼參數並不是一個好主意,服務可能會通過返回405錯誤來阻止這種情況。 –

相關問題