- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试实现一种 PHP 方法来验证对美联社供稿的请求。来自他们的文档:
To authenticate all feed and content requests, the AP WebFeeds system uses HTTP Basic Authentication, which is currently the standard for syndicated feeds. Most feed readers and reader components allow the configuration of user credentials ahead of time and pass them in the headers rather than in the URL.
Important: Passing the credentials directly in the URL is currently widely blocked. For more information, see Microsoft’s security bulletin at http://www.microsoft.com/technet/security/bulletin/MS04-004.mspx.
You can configure a reader or component to create an authentication header with the name / value in the following format:
("Authorization", "Basic " + {Encoded_username_and_password})
where
{Encoded_username_and_password}
is replaced with the Base64 encoding of the bytes in the string "username:password."If you are writing your own client code to download a feed, use HTTP Basic Authentication that is built into your programming language’s library. HTTP Basic Authentication is available on most platforms; for example, Perl, PHP, C or Java.
我的尝试是:
/**
* Begin Transaction
*/
$url = "http://syndication.ap.org/AP.Distro.Feed/GetFeed.aspx?idList=" . implode(',', $idList) . "&idListType=products&maxItems=25";
$auth = "Authorization=Basic " . base64_encode($user . ":" . $pass);
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
curl_setopt($ch, CURLOPT_POSTFIELDS, $auth); // add POST fields
$result = curl_exec($ch); // run the whole process
curl_close($ch);
/**
* End Transaction
*/
var_dump($result);
这给了我:
string(405) "
Authentication
FeedServer
Authentication Failed on GetFeed
Authentication denied no auth credentials detected
"
在 PHP 中验证此请求的正确方法是什么?
最佳答案
Authorization is an HTTP header不是 POST 参数。您使用了设置请求正文的 CURLOPT_POSTFIELDS
。相反,您需要使用 CURLOPT_HTTPHEADER
来设置它(它的条目在列表中很靠后):
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic ' . base64_encode($user . ":" . $pass)));
如果还不是很明显,您不需要将其作为发布请求(除非 API 要求),因此您可以删除:
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
关于php - 验证 AP WebFeed 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11532938/
我注意到在将日期转换为字符串时缺少“ap/a/AP/a”。对于“h:m:s ap”,即我得到“11:5:42”。对于每个“ap/a/AP/a”形式也会发生同样的情况。 我缺少什么? void Deco
我想扫描并列出可用的 WIFI 接入点,并允许用户从 Windows 应用商店应用程序的自定义界面连接到一个接入点。 我知道 WiFi native API,但无法在 Windows 应用商店应用程序
所以在 Xcode 中,供应配置文件说 aps-environment 授权是其中的一部分,但在存档之后供应配置文件缺少 aps-entitlement。 最佳答案 Xcode 8 发行说明提到了这个
我试图了解ap,但遇到了麻烦。 在 fantasyland ,詹姆斯·福布斯 说: First we teach a function how to interact with our type, b
我的字符串是“2358132235”。我需要找出这是否是字符串数字正在进行算术级数。我可以做到直到8,但当我达到13时,我不知道如何处理多位数字在这里。有人可以帮忙吗。谢谢。 私有(private)静
刚收到一封来自 Apple 的电子邮件,说明我的应用是(复制如下) 好的,没问题。我删除了旧的配置文件,确保新的配置文件有一个 aps key **aps-environment production
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
1、视图 ? 1
with data as ( select 1 id, 'A' name, 'fruit' r_group, '2007' year, '04' month, 5 sales from dual
由于某种原因,我们的临时配置文件没有 aps-environment 权利!我们已确保在为该应用 ID 启用生产 apns 后生成配置文件。实际上,我们甚至为该应用程序 ID 创建了一个新的临时配置文
我已阅读 Where does xcode take application's Identifier from? , XCode bundle identifier formatting from
我正在经历https://www.scala-exercises.org/对于猫来说。我想我明白Apply.ap 是什么意思。但我看不到它有任何用途。 有什么区别: Apply[Option].map
我正在编写一个函数,该函数接受一个值作为输入,在该输入上调用一个函数,如果结果是Just x,它应该返回x;否则,它应该返回原始输入。 换句话说,这个函数(我不知道该调用什么): foo :: (a
我是OpenCV的新手。我正在使用anaconda spyder控制台编写Python代码。我在这里采用了代码形式(https://www.pyimagesearch.com/2014/08/25/4
在 Haskell 中使用“ap”monad 的正确方法是什么?我想做类似的事情: main = (putStr . ap (++) show) "main = (putStr . ap (++) s
在我接触到这个方法之前,我以为我理解了递归。我对这件事的时间安排感到非常惊讶,因此请求你们的帮助。 public static void mystery5(String sWord) { in
我正在经历https://www.scala-exercises.org/对于猫来说。我想我明白Apply.ap 是什么意思。但我看不到它有任何用途。 有什么区别: Apply[Option].map
我的应用程序在构建期间安装的 Android 设备上成功运行,但是当我通过蓝牙/whatsapp 从我的设备将此应用程序发送到另一台设备时,它无法在此设备上运行,显示应用程序未安装错误...任何机构都
问题是: 给定一个由未知大小的整数和其他三个 int 值组成的 ArrayList,删除 ArrayList 中位于 int 值指定的索引位置的三个元素。将 ArrayList 的第一个元素设置为三个
我是一名计算机科学学生,我不明白为什么我的添加索引的语句不起作用。具体来说,我应该编写一个脚本,为供应商表中的邮政编码字段添加 AP 数据库的索引。我尝试使用以下声明来做到这一点: CREATE IN
我是一名优秀的程序员,十分优秀!