【问题标题】:Post URL with PHP script使用 PHP 脚本发布 URL
【发布时间】:2014-03-26 12:00:56
【问题描述】:

我有一个小问题。我使用我的 PHP 脚本生成一个 URL,如下所示:

http://emoncms.org/input/post.json?json={CONSO:1.5828060}&apikey=MyApiKey

我使用下面的代码将 URL 发送到互联网,但它不起作用:

$client = new Client('http://emoncms.org'); 
$query ='/input/post.json'; 
$query .= '?json={CONSO:' . $CONSO . '}' . '&apikey=MyApiKey';

$request = $client->post($query); 
$response = $request->send();

但是,当我将 URL 放入浏览器时,它可以工作!但不是我的 PHP 脚本... :(

你能帮帮我吗?

【问题讨论】:

  • 对代码使用{}代码标记工具,而不是引用工具。
  • 似乎 php 脚本处理 $_GET 而不是 $_POST
  • 你不需要引用MyApiKey
  • 无论如何你都遇到了语法错误。 '&apikey='MyApiKey' 无效 PHP - 不平衡 '-quotes。
  • 不,比如'?json=' . urlencode(json_encode(array('CONSO'=>$CONSO))) . '&apikey=MyApiKey'

标签: php url post send


【解决方案1】:

请执行以下操作。

$client = new Client('http://emoncms.org'); 
$query ='/input/post.json'; 
$MyApiKey = "yourapikey";
$query .= '?json={CONSO:' . $CONSO . '}' . '&apikey='.$MyApiKey;

$request = $client->post($query); 
$response = $request->send();

【讨论】:

  • 请在 $MyApiKey 变量中包含您的 apikey 并将 $conso 变量分配给 1.5828060
  • 是的,解决方案是使用 json_encode() :) 感谢您的帮助 ;)
【解决方案2】:

我建议使用 cURL 从 PHP 将数据发布到 url。你可以按照自己的方式做,我只是更喜欢 cURL。

我已经使用这种方法构建了几个 API:

    $ch = curl_init('http://emoncms.org/input/post.json');
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $result = curl_exec($ch);
    curl_close($ch);

您指定$post 任何您想发布的数据。它接受一个数组而不是这样做

$query ='/input/post.json'; 
$query .= '?json={CONSO:' . $CONSO . '}' . '&apikey='MyApiKey';

你可以这样做:

$post = array(
    'json'   => "{CONSO:$CONSO}",
    'apikey' => 'api_key_goes_here
);

$result 将是来自服务器的响应。如果是 json 响应,你可以简单地做 $result = json_decode($result, true);

如果服务器需要查询而不是发布数据,我会更改 cURL 请求以发送查询而不是发布。服务器可能允许任何一个,但我会检查以确保。

另外:如果你发送 json,为什么不使用json_encode($data);?我发现它比自己编写自定义 json 要好得多。但这取决于你。

【讨论】:

    猜你喜欢
    • 2013-12-16
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2017-06-14
    相关资源
    最近更新 更多