1
嘗試將以下XML數據發送到下面的URL。在PHP中發送XML到URL(不包含曲線)
$xml="<?xml version='1.0' encoding='utf-8'?>
<Job>
<Name>Set-up - ".$client_name."</Name>
<Description></Description>
<ClientID>".$accountantid."</ClientID>
<StartDate>".$start_date."</StartDate>
<DueDate>".$due_date."</DueDate>
<TemplateID>".$templateid."</TemplateIDr>
</Job>";
$createjob_url="https:<url>apiKey=[apikey]&accountKey=[accountkey]";
$stream_options = array (
'http' => array (
'method' => "POST",
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'content' => $xml
)
);
$context=stream_context_create($stream_options);
$response=file_get_contents($createjob_url, false, $context);
echo "<p>".$response."</p>";
答案應該出來'確定',但它只是空白。
debug.log有以下錯誤。
PHP Warning: file_get_contents(https:<url>?apiKey=[apikey]&accountKey=[accountkey]): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
我注意到URL改變 '&' 到 '&'。如果我把url直接放到瀏覽器中,它不起作用,但是如果我刪除'amp''它給了我肯定的迴應。
但是,如果我從代碼中刪除'false,$ context'例如file_get_contents($createjob_url)
,響應返回'OK',所以URL很好。
我使用的是Google App Engine,因此無法使用cURL。
我認爲它與我的流選項有關嗎?任何反饋將不勝感激。