2015-11-21 166 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错误来阻止这种情况。 –

相关问题