Qiniu: Всегда возвращать «405 Not Allowed»

Я пытаюсь интегрировать Qiniu SDK для загрузки аудио. Согласно документации, нам сначала нужно получить токен доступа.
Потому что нам нужно передать AccessToken в любом вызове API.

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>

Пожалуйста, любой может направить меня, что не так в этом.

1

Решение

php sdk предоставил функцию accesstoken.
класс 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;

надеюсь, что это может помочь вам.

2

Другие решения

Если вы используете iOS 9 SDK, все ваши звонки должны использовать https из-за ATP (безопасность транспорта приложения). Если вы хотите иметь исключения и хотите разрешить определенные вызовы 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 (но Apple не рекомендует это):

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