Plesk API中不寻常的HTTP标头

问题描述:

documentation for the Plesk API *提供以下cURL功能。Plesk API中不寻常的HTTP标头

function curlInit($host, $login, $password) 

{ 

    $curl = curl_init(); 

    curl_setopt($curl, CURLOPT_URL, "https://{$host}:8443/enterprise/control/agent.php"); 

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

    curl_setopt($curl, CURLOPT_POST,   true); 

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 

    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 

    curl_setopt($curl, CURLOPT_HTTPHEADER, 

     array("HTTP_AUTH_LOGIN: {$login}", 

       "HTTP_AUTH_PASSWD: {$password}", 

       "HTTP_PRETTY_PRINT: TRUE", 

       "Content-Type: text/xml") 

); 



    return $curl; 
} 

我有几个问题。

  1. 我从来没有在其他地方看到带有下划线的HTTP标头。这是文档中的错误吗?

  2. 地球上是什么HTTP_PRETTY_PRINT?搜索这只是让我回到Plesk文档。我无法在其他地方看到它。

  3. HTTP_AUTH_LOGINHTTP_AUTH_PASSWD而不是CURLOPT_USERPWD使用什么处理?

顺便说一句,无论我尝试什么选择,我都会收到来自Plesk的以下响应。

HTTP/1.1 404 Not Found 
X-UA-Compatible: IE=EmulateIE7 
Content-Type: text/html 
Content-Length: 345 
Date: Wed, 27 Jun 2012 14:58:15 GMT 
Server: sw-cp-server 
<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <title>404 - Not Found</title> 
</head> 
<body> 
    <h1>404 - Not Found</h1> 
</body> 
</html> 

*的Parallels Plesk Panel 9.5 :: API RPC协议开发者指南>客户端代码示例> PHP客户端应用程序

对于点4:

404将意味着该文件.../enterprise/control/agent.php已经从服务器上删除。许多人在几个月前就已经开始在补丁发货前保护其免受安全漏洞的威胁。我建议检查/usr/local/psa/admin/logs/httpsd_access_log文件的错误,也可用/usr/local/psa/admin/htdocs/enterprise/control/agent.php

  1. Plesk使用它自己的头。在自定义HTTP请求中,您可以添加任何有效的标头。例如,一些网络服务器添加他们自己的头文件,如'powered by:xxxx',所以没关系。
  2. 漂亮的打印头是漂亮的XML输出所必需的。
  3. HTTP_AUTH_LOGIN标题包含面板用户登录名。 HTTP_AUTH_PASSWD标题包含面板用户密码。 CURLOPT_USERPWD不是必需的。使用这些选项
  4. 尝试:

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $packet); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 1200); //wait 20min 
    $response = curl_exec($ch); 
    
+0

+1这个答案有更多的信息,如果我要继续,这将是有用的,但接受的答案是我的实际问题。现在我的经理已经决定我们不打算这样做,所以没关系。 – TRiG