如果已发布api链接,则会发生争议

时间:2018-05-10 08:34:11

标签: php api

我有应用程序使用API​​链接将数据发布到另一个站点(运行其他应用程序),现在我需要返回反馈,例如“应用程序已启动!”或“错误”..我试图控制变量$result,但它什么都没有回报我。应用程序启动,如果我访问已发布结果的链接,一切正常。 如果我手动访问API链接,它只会给我空白页面(运行)。

proces.php

<?php

if(isset($_POST['submit'])) {

  $ssId = $_POST['ssId'];
  $red = $_POST['red'];
  $id = $_POST['id'];
  $user = $_POST['user'];

$postdata = http_build_query(
    array(
        'ssId' => $ssId,
        'red' => $red,
        'id' => $id,
        'user' => $user
    )
);

$opts = array('http' =>
    array(
        'user'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context  = stream_context_create($opts);

$result = file_get_contents('https://apiLink.com/someKey&ssId='.$ssId.'&red='.$red.'&id='.$id.'&user='.$user.'', false, $context);

header("Location: startApp.php");
}
?>

1 个答案:

答案 0 :(得分:1)

问题是您当前的代码使用$_POST处理请求但是链接触发了http 'GET'方法而不是'POST',还有一些额外的检查,例如$_POST['submit'],因此链接重定向无法使用你的逻辑。

如果您将$_POST替换为$_REQUEST,那么只要您发送所有相关参数,就可以使用链接。其他选项只是给出一个带有隐藏输入字段的表单中的按钮。