我正在尝试构建一个使用simplenote api的应用程序,但我遇到了身份验证部分的问题。我收到400错误(错误的请求)。 我猜这个问题与simplenote api无关,而是我对文档的理解。
这是api所说的:
HTTP POST到以下URL: https://simple-note.appspot.com/api/login
请求的主体应该包含这个,但是base64编码: 电子邮件= [电子邮件地址]&安培;密码= [口令]
要清楚,您将连接email =与用户的电子邮件地址(已修剪), & password =,以及用户的密码;然后base64生成的字符串并将其发送为 HTTP请求正文。 (不要使用标准变量对此请求进行编码 用于POST的Web表单的编码。我们基本上忽略了Content + Type标头 对于这个请求,但text / plain在这里最有意义。)
到目前为止,这是我的代码:
$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);
答案 0 :(得分:0)
我认为他们的意思是:
$data = base64_encode(http_build_query(array(
"email" => $email,
"password" => $password
));
因此base64对结果字符串进行编码,而不是单个部分。
至于提出要求。我建议你看一下cURL
,它比<{1}}更快 。