Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP脚本发布URL_Php_Url_Post_Send - Fatal编程技术网

用PHP脚本发布URL

用PHP脚本发布URL,php,url,post,send,Php,Url,Post,Send,我有个小问题。我使用PHP脚本生成URL,如下所示: http://emoncms.org/input/post.json?json={CONSO:1.5828060}&apikey=MyApiKey 我使用下面的代码将URL发送到Internet,但它不起作用: $client = new Client('http://emoncms.org'); $query ='/input/post.json'; $query .= '?json={CONSO:' . $CONSO . '

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

http://emoncms.org/input/post.json?json={CONSO:1.5828060}&apikey=MyApiKey
我使用下面的代码将URL发送到Internet,但它不起作用:

$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脚本…:

你能帮帮我吗?

请做以下事情

$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();

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

我使用此方法构建了几个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\u decode$result,true

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


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

使用{}代码标记工具进行代码,而不是引用工具。php脚本似乎处理$\u GET而不是$\u post。您不需要引用MyApikey,反正上面有语法错误。”&apikey='MyApiKey'是无效的PHP-unbalanced'-quotes.No,如'?json='。urlencodejson_encodearray'CONSO'=>$CONSO'&apikey=MyApiKey'请将您的apikey包含在$MyApiKey变量中,并将$conso变量分配给1.5828060是的,解决方案是使用json_编码:谢谢您的帮助;