为什么我没有收到我的json回复?

时间:2013-09-08 23:24:14

标签: php json forms smartystreets

好的,我认为这应该会生成一个json响应,但没有任何内容被打印出来。我错过了什么?我正在尝试将此输入发送到url请求,然后获取要打印的json响应。

<?php

// Customize this (get ID/token values in your SmartyStreets account)
$authId = urlencode("id");
$authToken = urlencode("id");

// Address input
$input1 = urlencode($_POST["street"]);
$input2 = urlencode($_POST["city"]);
$input3 = urlencode($_POST["state"]);
$input4 = urlencode($_POST["postcode"]);

// Build the URL
$req = "https://api.smartystreets.com/street-address/?street={$input1}&city={$input2}&state={$input3}&postcode={$input4}&auth-id={$authId}&auth-token={$authToken}";

// GET request and turn into associative array
$result = json_decode(file_get_contents($req));



?>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
</head>
<body>
<div id="panel">
     <form action="smarty-geocode.php" name="" method="post">
          <input id="addresses" type="hidden" value="">
          Street Address
          <input id="street" type="textbox" value="" class="address">
          <br />
          City
          <input id="city" type="textbox" value="" class="address">
          <br />
          State
          <input id="state" type="textbox" value="" class="address">
          <br />
          Zipcode
          <input id="postcode" type="textbox" value="" class="address">
          <br />
          Country
          <input id="country" type="textbox" value="" class="address">
          <br />
          <input type="submit" value="submit" id="#mySubmitButton" />
     </form>
</div>
<div id="map-canvas" style="height:40%;top:30px;"></div>
<div>
<?php
echo "<pre>";
print_r($result);
echo "</pre>";
?>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:2)

我没有足够的信息来调试您网址的输出 - 不过我认为您应该可以通过将其添加到页面底部来解决这个问题: -

<?php var_dump(file_get_contents($req)); ?>

除此之外,您的表单元素都没有名称属性,因此实际上没有任何内容发布到您的脚本中。以下是表单的修改版本,其中包含每个字段的名称属性: -

     <form action="smarty-geocode.php" name="" method="post">
      <input id="addresses" name="addresses" type="hidden" value="">
      Street Address
      <input id="street" name="street" type="textbox" value="" class="address">
      <br />
      City
      <input id="city" name="city" type="textbox" value="" class="address">
      <br />
      State
      <input id="state" name="state" type="textbox" value="" class="address">
      <br />
      Zipcode
      <input id="postcode" name="postcode" type="textbox" value="" class="address">
      <br />
      Country
      <input id="country" name="country" type="textbox" value="" class="address">
      <br />
      <input type="submit" value="submit" id="#mySubmitButton" />
 </form>

希望这一点,结合您对file_get_contents命令输出的调试,将帮助您解决您遇到的问题。我假设您正在使用Smarty Streets中的有效authId和authToken替换这些值: -

$authId = urlencode("id");
$authToken = urlencode("id");