Php 通过post从api检索身份验证令牌
我正在尝试构建一个使用SimpleNoteAPI的应用程序,但是我在身份验证部分遇到了问题。我收到一个400错误(请求错误)。 我猜这个问题与SimpleNoteAPI无关,而是我对文档的理解 以下是api所说的: HTTP POST到以下URL: 请求正文应包含以下内容,但以base64编码: 电子邮件=[电子邮件地址]&密码=[密码] 为了清楚起见,您将把email=与用户的电子邮件地址(修剪)连接起来, &密码=,以及用户的密码;然后base64生成的字符串并将其作为 HTTP请求主体。(不要使用标准变量对此请求进行编码 用于发布web表单的编码。我们基本上忽略内容+类型标题 对于此请求,但此处的text/plain最有意义。) 这是我到目前为止的代码:Php 通过post从api检索身份验证令牌,php,api,authentication,post,Php,Api,Authentication,Post,我正在尝试构建一个使用SimpleNoteAPI的应用程序,但是我在身份验证部分遇到了问题。我收到一个400错误(请求错误)。 我猜这个问题与SimpleNoteAPI无关,而是我对文档的理解 以下是api所说的: HTTP POST到以下URL: 请求正文应包含以下内容,但以base64编码: 电子邮件=[电子邮件地址]&密码=[密码] 为了清楚起见,您将把email=与用户的电子邮件地址(修剪)连接起来, &密码=,以及用户的密码;然后base64生成的字符串并将其作为 HTTP请求主体。
$url = 'https://simple-note.appspot.com/api/login';
$data = array('email' => base64_encode($email), 'password' => base64_encode($password));
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
var_dump($result);
我认为他们的意思是:
$data = base64_encode(http_build_query(array(
"email" => $email,
"password" => $password
));
所以base64编码的是结果字符串,而不是单个部分
至于提出要求。我可以推荐您看看
cURL
,它比文件获取内容快得多
谢谢!我试试卷发!