如何请求 addDelegates ? 415错误

how to request addDelegates ? 415 error

我可能需要通过 php 中的 POST 操作访问电子邮件设置 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 :/

提前致谢。

我认为您发布的代码中的内容类型不正确。将内容类型更改为 "application/atom+xml" 而不是 application/xml+atom。这应该可以解决您的 415 错误。