允许客户端编码器发布json并从Web服务获取完整视图

时间:2016-03-01 15:31:18

标签: php laravel guzzle

我在laravel 5中编写了一个调度应用程序,它基本上从本地存储构建一些json并将其发送到控制器然后发送到视图。视图主要是解析json并构建计划的javascript。我想扩展这个以允许客户端编码器生成他们自己的json并将其发布到我的应用程序并让我的应用程序向他们发送完整的视图/时间表。

我正在使用php 7和php -S选项来启动2台服务器 - 一台托管我的主要时间表,另一台托管客户端测试代码,这些代码会发布到时间表上。

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$uri ='/api/clientJSON'; 
$uri_token ='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL2xvY2FsaG9zdDo4MDAwXC9hcGlcL2F1dGhlbnRpY2F0ZSIsImlhdCI6MTQ1Njg0NDI1NiwiZXhwIjoxNDU2ODQ3ODU2LCJuYmYiOjE0NTY4NDQyNTYsImp0aSI6IjI2ODZjZWIwNjI2ZDVmZWE1YmVlZjMwNzM0ZDhkMzZmIn0.hWrIGNGLlIHOLP9FltefsN066WOHpGTm2SmsF6feAsI'; 
$calendarJson = '{"auth":"test"}';

$client = new Client([
    'base_uri' => 'http://localhost:8000',
    'timeout'  => 2.0,
]);


$response = $client->request('POST', $uri, [
    'query'=>['token' => $uri_token],
    'form_params' => [
        'calendarJson' => $calendarJson
    ]
]);

echo $response->getBody();

这个问题似乎是当身体确实回显时,它只会拉入html页面并且所有依赖的js / css文件都没有被加载。我显然缺少构建我的Web服务的基本知识。有人可以开导我吗?

1 个答案:

答案 0 :(得分:1)

虽然Guzzle是PHP HTTP客户端,但它不是Web浏览器。因此,它将执行HTTP请求,但它不会解析响应以确定是否需要下载其他文件或正确查看内容。

如上所述,如果请求被处理,并且响应包含外部存储的javascript或CSS文件的引用,则不会请求它们。

多年来,互联网一直非常善于模糊内容和演示之间的界限。作为服务提供商,您对从外部来源获得的内容感兴趣,而不是那些外部来源如何呈现它。