【问题标题】:Unable to get the parameters sent from POST request无法获取 POST 请求发送的参数
【发布时间】:2018-02-18 15:22:57
【问题描述】:

我正在尝试检索使用 POSTMAN 发送的 POST 请求。我能够检索所有其他参数的值,但无法获取电子邮件的值。我的代码可能有什么问题?

<?php
$app = new \Slim\App;
$app->post('/instituteRegister', function(Request $request , Response 
$response){
$irno = $request->getParam('irno');
$iname = $request->getParam('iname');
$iaddress = $request->getParam('iaddress');
$state = $request->getParam('state');
$district = $request->getParam('district');
$ipno  = $request->getParam('ipno');
$email = $request->getParam('email');
$password = $request->getParam('password');
//echo $code ."<br>";

echo $irno ." <= irno <br>";
echo $iname ." <= iname <br>";
echo $iaddress ." <= iaddress <br>";
echo $state ." <= state <br>";
echo $district . "<= district <br>";
echo $ipno ." <= ipno <br>";
echo $email . " <= email <br>";
echo $password . " <= password <br>";
);

我使用邮递员发送了发布请求,如下图所示 OUTPUT

为什么电子邮件字段是空白的? 发布:http://localhost/EOnlineService/api/v1/institution/institution.php/instituteRegister?irno=12&iname=grace&iaddress=xyz&state=kohima&district=xyz&ipno=12&email =grace@gmaill.com&password=hello123

【问题讨论】:

    标签: php api post postman slim


    【解决方案1】:

    @ 登录电子邮件可能是个问题,对电子邮件地址进行 url 编码并检查输出。 grace%40gmail.com

    由于 url 的长度限制,我建议将此数据作为 json 原始正文在 post 请求中传递。

    【讨论】:

    • 它不起作用。我什至尝试不使用任何特殊字符但仍然没有运气
    • 尝试print_r($request); 检查请求中的所有查询参数。并在此处发布苗条请求对象以进行进一步调查。
    • 有没有办法使用“请求”对象解码从客户端发送的json数据?
    • 检查 print_r($request) 输出中的查询参数后,电子邮件的值为空
    【解决方案2】:

    请求

    $email="xyz@gmail.com"; $encodedEmail=urlencode($email);

    回答

    $decodedEmail = urldecode($_GET['email']); // 它将返回 xyz@gmail.com 作为字符串,解码。

    【讨论】:

    • 不起作用,我什至尝试在没有任何特殊字符的情况下给出 email 的值。例如 email=gracegmailcom
    • 奇怪,通常它应该返回参数,你可以var_dump请求吗?
    • 我认为问题是由于 URL 的长度限制。将 POST 数据作为 json 传递就可以了。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    相关资源
    最近更新 更多