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->all())
中有什么内容?
【参考方案1】:
如果您发布原始数据,我认为您可以使用$request->getContent();
【讨论】:
以上是关于Laravel 空请求的主要内容,如果未能解决你的问题,请参考以下文章
向 Laravel Api 发出 POST 请求时,React Native 获取一个空数组