用PHP脚本发布URL
我有个小问题。我使用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 . '
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_编码:谢谢您的帮助;