我正按照以下说明尝试发布:
资源信息
HTTP方法:POST
内容类型:application / json
接受:application / json
验证
注意:需要Cookie或授权标头。
Cookie:SESSION_ID = 108259418ff689fc
授权:基本WVdECUMScUZGGGBGOlhVODdGNXFkR253SA ==
示例请求
POST https://sandbox.domain.com/api/authenticationTokens
Cookie:SESSION_ID = cdf5b882667d24a2
"是什么意思?需要Cookie或授权标头。"我不明白如何阅读/解释和实施"示例请求"。
这是我到目前为止所做的:
$parameters = array();
$curl = curl_init();
$header = array( "Accept: application/json", "Cookie: _SESSION_ID=cdf5b882667d24a2" );
curl_setopt( $curl, CURLOPT_URL, "https://sandbox.domain.com/api/authenticationTokens" );
curl_setopt( $curl, CURLOPT_POST, count( $parameters ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, http_build_query( $parameters ) );
curl_setopt( $curl, CURLOPT_HTTPHEADER, $header );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
$response = curl_exec( $curl );
curl_close( $curl );
答案 0 :(得分:1)
上面的示例使用cookie身份验证。 Cookie在请求标头中发送。要使用cookie身份验证,您需要以某种方式获取会话ID并将其替换为代码。我猜你需要以某种方式先打开一个会话,然后在cookie中使用该值,但这似乎是一种奇怪的方式来验证API。另外,我不确定领先的下划线是否是拼写错误。如果它不起作用,您可能想要在没有下划线的情况下尝试:
"Cookie: SESSION_ID=cdf5b882667d24a2"
或者,如果您想使用HTTP身份验证,则需要提供类似
的用户名和密码curl_setopt( $curl, CURLOPT_USERPWD, 'username:password' );
如果您拥有的只是一个值,则可能会在password
部分中将用户名留空:
curl_setopt( $curl, CURLOPT_USERPWD, ':WVdECUMScUZGGGBGOlhVODdGNXFkR253SA==' );