Почему показывает плохой запрос вместо работы в почтальоне - PullRequest
0 голосов
/ 06 мая 2020

Я столкнулся с проблемой. В моем приложении почтальона все работает нормально. Это запрос почтового метода. Это моя ссылка .

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. Запрос имеет недопустимое имя заголовка. Я не знаю, почему он показывает мне ошибку.

1 Ответ

0 голосов
/ 08 мая 2020

Я решил эту проблему, просто замените

"Content-Type: application/x-www-form-urlencoded",
"Content-Type: application/json",
"Cookie: ASP.NET_SessionId=urr1e3hsehli50bqkw04ot3r"

на

'Content-Type' => 'application/x-www-form-urlencoded',
'Content-Type' => 'text/plain',
'Cookie'       => 'ASP.NET_SessionId=wvxova2bwht020vw4begtpiw'

Теперь у меня все работает нормально

...