【问题标题】:Send query to json from php从 php 向 json 发送查询
【发布时间】:2013-09-16 13:19:22
【问题描述】:

我正在尝试以格式将 url 从 php 页面发送到 json 页面

"http://myserver.com/login?q={"myid":"phil","password":"mypass"}"

。如果我将其粘贴到浏览器地址中,它可以正常工作。我试过 HttpRequest 和 cURL 没有成功。您能建议如何实现吗?

<?php
$yourJSONEncodedData = array('userid' => "phill", 'password' => "mypassword");
$url = "http://myserver.com/login?q=".json_encode($yourJSONEncodedData);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
$output = curl_exec($curl);
curl_close($curl);
var_dump($output);
$response =  json_decode($output,true);
echo $response;
?>

我希望将“{}”返回给 php 程序。

【问题讨论】:

  • 显示你的代码,我们会看到发生了什么,没有它,我们不能做太多

标签: php json curl httprequest


【解决方案1】:

不知道为什么要发送json格式的参数?您可以在查询字符串中发送参数并获取 json 页面中的所有值。

【讨论】:

  • 你的意思是我应该使用 HttpRequest 吗?我是 json 新手,不知道如何获取 json 页面中的值。
【解决方案2】:

在 PHP 中使用 json_encode()

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

上面的例子会输出:{"a":1,"b":2,"c":3,"d":4,"e":5}

使用 cURL 发布 JSON 数据(类似这样)

$url="http://myserver.com/login?q=".$yourJSONEncodedData;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
$output = curl_exec($curl);
curl_close($curl);
var_dump($output);

这就是我可以在没有看到您的代码的情况下提出的全部建议。

【讨论】:

  • 感谢您的回答。这是我一直在尝试的,但我仍然得到相同的响应。 string(307) "HTTP/1.1 200 OK Cache-Control: no-cache, must-revalidate Set-Cookie: session=52371dfc03643ec12bcf53ad;Path=/ Expires: Thu, 01 Jan 1970 00:00:00 GMT Content-Type: application /json;charset=UTF-8 内容编码:gzip 传输编码:分块服务器:Jetty(8.1.10.v20130312) ‹«®C¿¦£"。我期待“{}”被返回。
猜你喜欢
  • 2013-01-04
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多