通过php客户端进行HTTP放置

时间:2018-06-23 12:30:01

标签: php client

我正在为名为Xena.biz的会计网站编写一个小型“应用程序”

系统具有使用oAuth2连接的API。我整理的所有内容-我可以完美地检索所需的信息。现在,我需要将一个PUT字符串提交回Xena-在这里我无法弄清楚。

系统建立在名为XenaClient.php的文件上,该文件包含所有授权调用和所有请求。

以下是我如何检索信息的示例:

<?
require('XenaClient.php');
const CLIENT_ID     = 'SECRET';
const CLIENT_SECRET = 'VERY SECRET'; 
$xenaclient = new XenaOAuth2Client(CLIENT_ID, CLIENT_SECRET);
$xenaclient->setAccessToken($_COOKIE["MaskedCookieName"]);

$ordertask = $xenaclient->fetch('https://my.xena.biz/Api/Fiscal/'.$_GET["fiscal"].'/OrderTask/'.$_GET["orderId"]);
var_dump($ordertask);
?>

但是现在我想通过PUT发送信息。根据XenaClient.php脚本,我应该使用命令$ xenaclient-> fetch($ url,$ parameters);

这是我的镜头

require('XenaClient.php');
const CLIENT_ID     = 'SECRET';
const CLIENT_SECRET = 'VERY SECRET'; 
$xenaclient = new XenaOAuth2Client(CLIENT_ID, CLIENT_SECRET);
$xenaclient->setAccessToken($_COOKIE["MaskedCookieName"]);


$xenaclient->fetch('https://my.xena.biz/Api/Fiscal/96946/Order/243936250/Confirmation',array('ConfirmationDate'=>NULL,'ConfirmationReportLayoutId'=>261205291));
?>

这不会退回任何东西,也不会在会计系统内部产生想要的效果。不能从Xena那里得到帮助,所以这就是为什么我问你们,希望您能帮助我。

这里有一些指针:

API资源:https://dev.xena.biz

XenaClient.php:https://github.com/EG-BRS/Xena.ExampleApp.PHP/blob/master/XenaClient.php

1 个答案:

答案 0 :(得分:0)

here告诉您,获取功能的 third 参数(尽管是可选的)确定了请求的方法。默认为GET(XenaOAuth2Client::HTTP_METHOD_GET),因此,如果要使用PUT,则应明确提供适当的PUT参数(其他方法请参见XenoOAuth2Client::fetch

$xenaclient->fetch(
    'https://my.xena.biz/Api/Fiscal/96946/Order/243936250/Confirmation',
    array('ConfirmationReportLayoutId'=>261205291),
    XenaOAuth2Client::HTTP_METHOD_PUT
);

今天大多数API使用json,也许应该是json ...

$xenaclient->fetch(
    'https://my.xena.biz/Api/Fiscal/96946/Order/243936250/Confirmation',
    json_encode(array('ConfirmationReportLayoutId'=>261205291)),
    XenaOAuth2Client::HTTP_METHOD_PUT
);