我可能需要在php中使用POST操作访问emailsettings api。
但我总是得到这个错误: 无法打开流:HTTP请求失败! HTTP / 1.0 415不支持的媒体类型
这是我的代码:
public function addDelegates($account,$delegates,$domain,$tokken) {
foreach ($delegates as $key => $value) {
sleep(5);
$url = "https://apps-apis.google.com/a/feeds/emailsettings/2.0/".$domain."/".$account."/delegation";
$requestXML = '<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
<apps:property name="address" value="' . $value . '" />
</atom:entry>';
$requestHeaders = array(
'Content-type: application/xml+atom',
'Accept: application/xml+atom',
sprintf('Content-Length: %d', strlen($requestXML))
);
$context = stream_context_create(
array(
'http' => array(
'method' => 'POST',
'header' => implode("\r\n", $requestHeaders),
'content' => $requestXML,
)
)
);
$responseXML = file_get_contents($url, false, $context);
}
我看到这个错误意味着我可能会发送错误的内容类型。但我尝试了application / json,application / xml,text / xml等。
我们必须在emailSettings api doc:/
中发送哪些数据提前致谢。
答案 0 :(得分:1)
我认为您发布的代码中的内容类型不正确。将内容类型更改为&#34; application / atom + xml&#34;而不是application / xml + atom。这应解决您的415错误。