Qiniu:总是返回" 405不允许"

时间:2015-11-21 07:46:33

标签: php ios afnetworking audio-streaming

我正在尝试集成Qiniu SDK进行音频上传。根据它的文档,我们首先需要获取Access Token。 因为我们需要在任何api调用中传递AccessToken。

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

我正在尝试使用以下数据调用API。

.anchor{
    position: relative;
}

.fixed-button{
    position: absolute;
    top: 10px;
    right: 50px;
}

但它仍然给我以下回复

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

请任何人都可以指导我的错误。

2 个答案:

答案 0 :(得分:2)

php sdk提供了accessstoken函数。 Auth课程在这里: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;
希望它可以帮助你。

答案 1 :(得分:1)

如果您使用iOS 9 SDK,则由于ATP(App传输安全性),您的所有呼叫都应使用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>

您甚至可以通过将此添加到.plist文件中来允许所有http流量(但Apple不建议这样做):

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