Php 如何使用多层阵列发送PUT请求
我需要向API发送一个Json“PUT”请求。我对Json编码非常陌生,所以对您来说可能是一个简单的方法 Json如下所示:Php 如何使用多层阵列发送PUT请求,php,arrays,json,curl,Php,Arrays,Json,Curl,我需要向API发送一个Json“PUT”请求。我对Json编码非常陌生,所以对您来说可能是一个简单的方法 Json如下所示: OrderDto { Version (integer, optional), IsDeactivated (boolean, optional, read only), FiscalSetupId (integer, optional, read only), CreatedAt (string, optional, read only), CreatedBy (int
OrderDto {
Version (integer, optional),
IsDeactivated (boolean, optional, read only),
FiscalSetupId (integer, optional, read only),
CreatedAt (string, optional, read only),
CreatedBy (integer, optional, read only),
PartnerId (integer, optional),
OurReference (string, optional),
YourReference (string, optional),
ContextType (string, optional),
Address (AddressDto, optional),
DeliveryAddress (AddressDto, optional),
DeliveryNote (string, optional),
OrderNumber (integer, optional),
DateDays (integer, optional),
DeliveryDateDays (integer, optional),
CurrencyAbbreviation (string, optional),
OfferReportLayoutId (integer, optional),
DeliveryReportLayoutId (integer, optional),
InvoiceReportLayoutId (integer, optional),
ConfirmationReportLayoutId (integer, optional),
OfferReportLayoutName (string, optional),
DeliveryReportLayoutName (string, optional),
InvoiceReportLayoutName (string, optional),
ConfirmationReportLayoutName (string, optional),
InternalNote (string, optional),
TermsOfPayment (TermsOfPaymentDto, optional),
Culture (string, optional),
ProjectId (integer, optional),
ResponsibleId (integer, optional),
ResponsibleName (string, optional),
InvoiceEmail (string, optional),
PartnerAccountNumber (string, optional),
PartnerName (string, optional),
PartnerNote (string, optional),
PartnerPhoneNumber (string, optional),
PartnerType (string, optional),
Summary (OrderSummaryDto, optional),
OrderInvoiceNumbers (Array[integer], optional),
DepartmentId (integer, optional),
DepartmentDescription (string, optional),
BearerId (integer, optional),
BearerDescription (string, optional),
PurposeId (integer, optional),
PurposeDescription (string, optional),
IsHeaderReadOnly (boolean, optional),
OrderStatusId (integer, optional),
OrderStatusName (string, optional),
OrderStatusColor (string, optional),
ProjectDescription (string, optional),
ProjectNumber (integer, optional),
OrderDeliveryStatus (string, optional),
CultureDisplayName (string, optional, read only),
Id (integer, optional)
}
根据API,我的请求需要“OrderDto”
这是我的Curl/php:
$url="api-site-url"; //I am aware that the url is missing :)
$post_data=array('OrderDto'=>array('OurReference' => 'Faktureret'));
$createJSONData=json_encode($post_data, JSON_FORCE_OBJECT);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'APIKEY: xxxx-xxxx-xxxx-xxxx'
));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $createJSONData);
$data = curl_exec($ch);
if (curl_errno($ch)) {
print "Error: " . curl_error($ch);
} else {
// Show me the result
curl_close($ch);
$obj=json_decode($data, true);
print_r($obj);
}
我收到一个由JSON错误引起的错误。您的建议是什么?OrderDto不是生成JSON格式的合适php构造。所提供的结构看起来像是程序员对每个值所需内容的说明。我知道,我只是想了解如何将信息“放入”数组中。当我尝试在requestb.in上运行脚本时,我得到以下Json:{“OrderDto”:{“OurReference”:“Faktureret”},这应该是正确的,对吗?