【发布时间】: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->all())中有什么内容?
标签: php xml laravel rpc xml-rpc