Lumen API 与 OAuth,Guzzle get/post 方法
Lumen API with OAuth, Guzzle get/post method
我正在构建一个带有 OAuth2 身份验证的 Lumen API,我遵循了本教程:http://esbenp.github.io/2015/05/26/lumen-web-api-oauth-2-authentication/ 但我遇到了一个错误:
"Fatal error: Maximum execution time of 60 seconds exceeded in C:\Users\user\Desktop\api\lumen\vendor\guzzlehttp\guzzle\src\Handler\CurlMultiHandler.php on line 99"
Guzzle 的 post 方法(还有 get 方法)对我不起作用
$app->get('api', function() use ($app) {
$client = new \GuzzleHttp\Client();
$response = $client->get('localhost:8000/api/hello');
return $response;
});
$app->get('api/hello', function() use ($app) {
return "Hello";
});
给我同样的错误
我解决了我的问题:
POST 和从我的 API 到我的 API 的 GET 请求不起作用,因为我正在使用
php artisan serve
所以来自 localhost:8000/api 的请求在 localhost:8000/api/hello 上没有工作但是来自 localhost:8000/api 的 GET 请求在 http://www.google.com/ 上做了。
示例:
$app->get('api', function() use ($app) {
$client = new \GuzzleHttp\Client();
$response = $client->get('http://www.google.com/');
return $response;
});
我必须直接在 www/ 文件夹中的本地主机上部署我的 Lumen API(windows 上的 C:\wamp\www 或 linux 上的 /var/www/html/)
$app->get('api', function() use ($app) {
$client = new \GuzzleHttp\Client();
$response = $client->get('localhost/api/hello');
return $response;
});
$app->get('api/hello', function() use ($app) {
return "Hello";
});
现在可以使用了。
对于那些不知道如何在本地主机(或您的服务器)上部署 Lumen API 的人:
我的 Lumen 项目位于 C:\wamp\www\api
在项目根目录中创建一个 .htaccess,使其路径为 C:\wamp\www\api\.htaccess
与
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [L]
</IfModule>
将 C:\wamp\www\api\server.php 重命名为 C:\wamp\www\api\index.php
在你的 C:\wamp\www\api\public\index.php
变化
$app->run();
和
$request = Illuminate\Http\Request::capture();
$app->run($request);
别忘了激活 mod_rewrite !
我正在构建一个带有 OAuth2 身份验证的 Lumen API,我遵循了本教程:http://esbenp.github.io/2015/05/26/lumen-web-api-oauth-2-authentication/ 但我遇到了一个错误:
"Fatal error: Maximum execution time of 60 seconds exceeded in C:\Users\user\Desktop\api\lumen\vendor\guzzlehttp\guzzle\src\Handler\CurlMultiHandler.php on line 99"
Guzzle 的 post 方法(还有 get 方法)对我不起作用
$app->get('api', function() use ($app) {
$client = new \GuzzleHttp\Client();
$response = $client->get('localhost:8000/api/hello');
return $response;
});
$app->get('api/hello', function() use ($app) {
return "Hello";
});
给我同样的错误
我解决了我的问题:
POST 和从我的 API 到我的 API 的 GET 请求不起作用,因为我正在使用
php artisan serve
所以来自 localhost:8000/api 的请求在 localhost:8000/api/hello 上没有工作但是来自 localhost:8000/api 的 GET 请求在 http://www.google.com/ 上做了。
示例:
$app->get('api', function() use ($app) {
$client = new \GuzzleHttp\Client();
$response = $client->get('http://www.google.com/');
return $response;
});
我必须直接在 www/ 文件夹中的本地主机上部署我的 Lumen API(windows 上的 C:\wamp\www 或 linux 上的 /var/www/html/)
$app->get('api', function() use ($app) {
$client = new \GuzzleHttp\Client();
$response = $client->get('localhost/api/hello');
return $response;
});
$app->get('api/hello', function() use ($app) {
return "Hello";
});
现在可以使用了。
对于那些不知道如何在本地主机(或您的服务器)上部署 Lumen API 的人:
我的 Lumen 项目位于 C:\wamp\www\api
在项目根目录中创建一个 .htaccess,使其路径为 C:\wamp\www\api\.htaccess
与
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [L]
</IfModule>
将 C:\wamp\www\api\server.php 重命名为 C:\wamp\www\api\index.php
在你的 C:\wamp\www\api\public\index.php
变化
$app->run();
和
$request = Illuminate\Http\Request::capture();
$app->run($request);
别忘了激活 mod_rewrite !