【问题标题】:Laravel empty requestLaravel 空请求
【发布时间】: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()) 中有什么内容?

标签: php xml laravel rpc xml-rpc


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 2020-06-26
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 2019-01-31
    相关资源
    最近更新 更多