我需要将JSON集成到PHP中,更具体地说,我需要在我们网站的php页面上发布一些信息,以启动API请求,然后该API请求将信息发回给我。我发送的信息围绕登录信息,我正在努力确定如何发送此信息。
这是我需要发布的信息:
POST /user/?action=login HTTP/1.1
Host: api.interlinkexpress.com
Content-Type: application/json
Accept: application/json
Authorization: Basic RFNNSVRIOk1ZUEFTU1dE
GEOClient: account/123456
Content-Length: 0
阅读该主题后,我发现php cURL可能有用,但是我所举的示例并未包含我需要传递的所有信息。我也不确定是否需要通过按钮传递它:
$data = array("username" => "TESTAPI", "password" => "APITEST");
$data_string = json_encode($data);
$ch = curl_init('http://api.interlinkexpress.com');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
在这个问题上的任何帮助,将不胜感激。我是JSON的新手,只是转瞬即逝而已。
编辑:我想问的主要问题是如何将这些信息传递给PHP中的API?
POST /user/?action=login HTTP/1.1
Host: api.interlinkexpress.com
Content-Type: application/json
Accept: application/json
Authorization: Basic RFNNSVRIOk1ZUEFTU1dE (this is the login credentials)
GEOClient: account/123456
Content-Length: 0
如果您想要更强大的功能,可以使用Guzzle,它以一种更好的方式集成了cURL。
通过按钮将其传递给您,我不明白是什么意思。您是在谈论PHP还是HTML / Javasript?如果您想要一个按钮,则可以继续执行一个通过Javascript执行XMLHttpRequest,调用API(应该返回一个application / json Content-Type)的按钮,然后通过Javascript处理此结果。
或者,您可以使用cURL来调用API,获取结果,json_decode
然后执行所需的操作。
您应该更好地解释您想要完成的工作。
[编辑]
好的,在澄清之后,我可以告诉您,必须将API的参数与对该API的HTTP调用的设置相除(就像您已经做过^^一样)。
因此,使API执行某些操作的参数是
而其他所有设置均是HTTP客户端(cURL或Guzzle)的设置,它将执行对API网址的调用
因此,此操作尚未完成或未经测试,但应为您提供一条添加路径
$data = array("action" => "login");
$data_string = json_encode($data);
$ch = curl_init(sprintf('%s/%s', 'http://api.interlinkexpress.com', 'user/');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string)),
'GEOClient: account/123456',
);
// I would suggest you to add the timeout
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); // or set it to CURLAUTH_BASIC
curl_setopt($ch, CURLOPT_USERPWD, sprintf('%s:%s', $data['username'],$data['password']));
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //get status code
$result = curl_exec($ch);
老实说,我不知道/不知道应该在哪里发送JSON编码的数据。这样,您将“操作”作为JSON数据发送,但是我想这是错误的。也许您想将$data_string
as作为特定字段的值传递?(例如在PHP Develoer中所述的示例中?)
对此进行研究,并确切地了解您必须以JSON形式传递哪些数据,而不是什么。
希望对您有所帮助,并给您很好的建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句