Я столкнулся с проблемой. В моем приложении почтальона все работает нормально. Это запрос почтового метода. Это моя ссылка .
Content-Type: application/x-www-form-urlencoded
Content-Type: text/plain
Cookie: ASP.NET_SessionId= urr1e3hsehli50bqkw04ot3r
{
"request":{
"header":{
"username":"xxx",
"password":"xxx"
},
"body":{
"diamond_id":"114752692",
"shape":"Princess"
}
}
}
Создайте этот код в почтальоне, как показано ниже
curl --location --request POST
'https://technet.rapaport.com/HTTP/JSON/RetailFeed/GetSingleDiamond.aspx' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Content-Type: text/plain' \
--header 'Cookie: ASP.NET_SessionId=urr1e3hsehli50bqkw04ot3r' \
--data-raw '{
"request":{
"header":{
"username":"xxx",
"password":"xxx"
},
"body":{
"diamond_id":"114752692",
"shape":"Princess"
}
}
}'
Но проблема в моем коде php. Я конвертирую этот код в php и ниже вот так.
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://technet.rapaport.com/HTTP/JSON/RetailFeed/GetSingleDiamond.aspx",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>"{\r\n\"request\": {\r\n\"header\":{\r\n\"username\":\"xxx\",\r\n \"password\": \"xxx\"\r\n},\r\n\"body\": {\r\n\"diamond_id\":\"114752692\", \r\n\"shape\":\"Princess\"\r\n}\r\n}\r\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"Content-Type: application/json",
"Cookie: ASP.NET_SessionId=urr1e3hsehli50bqkw04ot3r"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
На моем локальном хосте, когда я просматриваю http://localhost/price/index.php
, он показывает мне ошибку.
Bad Request - Invalid Header
Ошибка HTTP 400. Запрос имеет недопустимое имя заголовка. Я не знаю, почему он показывает мне ошибку.