Jon*_*Jon 6 .net php api webtrends
我正在尝试使用PHP连接到Webtrend的API,但无法进行身份验证.
WT文档中给出的示例适用于.NET或Ruby,.Net示例如下所示:
var svc = new WebClient();
svc.Credentials = new NetworkCredential("yourWebTrendsAccount\WebTrendsUserName", "yourSuperSecretPassword");
svc.DownloadStringCompleted += svc_DownloadStringCompleted;
svc.DownloadStringAsync(new Uri(baseUri));
Run Code Online (Sandbox Code Playgroud)
我不熟悉.NET,但在PHP上是否有类似的WebClient类?
我一直在尝试使用CURL进行身份验证
username = "my_account_name/my_login_name"
password = "my_password"
Run Code Online (Sandbox Code Playgroud)
但到目前为止还没有运气.我收到一条错误消息,指出参数不正确.
更新:添加代码
$username=urlencode('my_account_name\my_login_name');
$password="my_password";
$postdata="username=$username&password=$password";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL,"https://ws.webtrends.com/v2/ReportService/profiles/XXXXXXXX/reports/XXXXXXXX/?totals=all&period=2011w14&format=xml");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
var_dump($result);
Run Code Online (Sandbox Code Playgroud)
我也试过了
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
Run Code Online (Sandbox Code Playgroud)
但到目前为止没有运气.
@Kevin Horst 提供了一个使用curl 和PHP 执行基本身份验证请求的好示例。我经常需要通过命令行来执行此操作。为此,您需要在系统上安装curl。
curl --user username:password \
-i https://ws.webtrends.com/v2/ReportService/profiles/XXXXXXXX/reports/XXXXXXXX/?totals=all&period=2011w14&format=xml
Run Code Online (Sandbox Code Playgroud)
根据 WebTrends 数据提取 API 的文档。他们使用基于 SSL 的基本身份验证,这是 RESTful 身份验证的标准。
| 归档时间: |
|
| 查看次数: |
811 次 |
| 最近记录: |