Laravel 空请求

Posted

技术标签:

【中文标题】Laravel 空请求【英文标题】:Laravel empty request 【发布时间】:2017-09-05 14:17:57 【问题描述】:

我想弄清楚如何在 Laravel 5.4 中使用 xml-rpc 我正在使用 Open HttpRequester 向 Laravel 发送 xml 请求, 它返回 200 OK 状态码,但我无法处理请求数据。

我只用一种方法(testMethod)将请求路由到控制器,内容如下:

public function testMethod(Request $request)         
    $req = xmlrpc_decode_request($request, $method);
    print_r($req);
    print_r($request->toArray());           

我的 XML 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
    <methodName>testMethod</methodName>
    <params>
        <param>
            <value>
                <string>Test value 1</string>
            </value>
        </param>
    </params>
</methodCall>

这个请求只返回一个空白数组。

我做错了什么?

编辑:

添加一些额外的代码。

路线:

Route::post('/request', 'RequestController@testMethod');

原始请求:

POST http://localhost/laratest/public/index.php/request
User-Agent: /
Host: localhost
Content-Type: text/xml
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
    <methodName>testMethod</methodName>
    <params>
        <param>
            <value>
                <string>Test value 1</string>
            </value>
        </param>
    </params>
</methodCall>

回应: (我正在使用 Open HttpRequester 查看响应) 浏览器模式:[]

明文模式:

Sfdump = window.Sfdump || (函数 (doc) var refStyle = doc.createElement('style'), rxEsc = /([.*+?^$()|[]/\])/g, idRx = /\bsf-dump -\d+-ref[012]\w+\b/, keyHint = 0 options.maxDepth) 切换(a); else if ('sf-dump-ref' == elt.className && (a = elt.getAttribute('href'))) a = a.substr(1); elt.className += ' '+a; if (/[[]$/.test(elt.previousSibling.nodeValue)) a = a != elt.nextSibling.id && doc.getElementById(a);尝试 s = a.nextSibling; elt.appendChild(a); s.parentNode.insertBefore(a, s); if (/^[@#]/.test(elt.innerhtml)) elt.innerHTML += ' ▶'; 其他 elt.innerHTML = '▶'; elt.className = 'sf-dump-ref'; elt.className += 'sf-dump-toggle'; catch (e) if ('&' == elt.innerHTML.charAt(0)) elt.innerHTML = '...'; elt.className = 'sf-dump-ref'; if (0 >= options.maxStringLength) return; 尝试 elt = root.querySelectorAll('.sf-dump-str'); len = elt.length;我 = 0; t = []; while (i

【问题讨论】:

php.net/manual/en/function.xmlrpc-decode-request.php - 使用此功能需要您自担风险 不管怎样,您对这个功能有什么期望?如果您使用的是 SOAP,则可以使用 SOAP 库。如果您使用的是 JSON - json_decode 等 我真的是网络服务的新手,正要弄清楚。我必须使用 xml-rpc,因为这是我的雇主希望实现的。我知道 xml_rpc_decode_request 和 xml_rpc_encode_request 是实验性的,但如果这是问题所在,那么 print_r($request->toArray) 会正常工作,但它不会; 使用dd($request) 而不是print_r dd($request) 返回某种脚本,生成一个空数组。 dd($request-&gt;all()) 中有什么内容? 【参考方案1】:

如果您发布原始数据,我认为您可以使用$request-&gt;getContent();

【讨论】:

以上是关于Laravel 空请求的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 中的 Ajax 请求返回一个空对象

Laravel 如果请求不为空添加 orWhere

向 Laravel Api 发出 POST 请求时,React Native 获取一个空数组

Laravel 5 - 根据需要验证数组,但允许传递一个空数组

Laravel 5.1 - 具有空值的模型上的关系

axios/laravel/formdata 发布请求为空