gpt4 book ai didi

php - 使用 curl 在现场发布数据以进行 Expedia 预订

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:17 28 4
gpt4 key购买 nike

我正在通过一个 api 发布一个现场预订请求。当我通过一个表单操作发布数据并提交时,我会得到回复。但是当我试图通过 curl 发布相同的 url 以获得响应时,我没有得到任何数据。

网址是:-

https://book.api.ean.com/ean-services/rs/hotel/v3/res?
minorRev=99
&cid=55505
&sig=1893d9f7e3e9fbd3f8a36f43cd61287d
&apiKey=1bn8n4or4tjajq23fe4l6m18lp
&customerUserAgent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
&customerIpAddress=223.30.152.118
&customerSessionId=e80df6de9008af772cfb48a389465415
&locale=en_US
&currencyCode=USD
&xml=<HotelRoomReservationRequest>
<hotelId>106347</hotelId>
<arrivalDate>10/30/2015</arrivalDate>
<departureDate>11/1/2015</departureDate>
<supplierType>E</supplierType>
<rateKey>469e1aff-49de-4944-a64d-25d96ccde3aa</rateKey>
<rateCode>200706716</rateCode>
<roomTypeCode>200127420</roomTypeCode>
<chargeableRate>252.00</chargeableRate>
<RoomGroup>
<Room>
<numberOfAdults>2</numberOfAdults>
<numberOfChildren>2</numberOfChildren>
<childAges>3,7</childAges>
<firstName>test</firstName>
<lastName>test</lastName>
<smokingPreference>NS</smokingPreference>
<bedTypeId>23</bedTypeId>
</Room>
</RoomGroup>
<ReservationInfo>
<email>test@travelnow.com</email>
<firstName>test</firstName>
<lastName>test</lastName>
<homePhone>2145370159</homePhone>
<workPhone>2145370159</workPhone>
<creditCardType>CA</creditCardType>
<creditCardNumber>5401999999999999</creditCardNumber>
<creditCardExpirationMonth>04</creditCardExpirationMonth>
<creditCardExpirationYear>2017</creditCardExpirationYear>
<creditCardIdentifier>123</creditCardIdentifier>
</ReservationInfo>
<AddressInfo>
<address1>travelnow</address1>
<city>Seattle</city>
<stateProvinceCode>WA</stateProvinceCode>
<countryCode>US</countryCode>
<postalCode>98117</postalCode>
</AddressInfo>
</HotelRoomReservationRequest>

我正在使用该代码

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
$header[] = "Accept: application/json";
$header[] = "Accept-Encoding: gzip";
$header[] = "Content-length: 0";


curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_VERBOSE, true);
$verbose = fopen('php://temp', 'rw+');
curl_setopt($ch, CURLOPT_STDERR, $verbose);

$result = curl_exec($ch);


echo '<pre>';
print_r($result);

请帮助我如何通过 curl 发布此数据以获得响应。我在 wordpress 中使用它进行付款预订。

最佳答案

根据我发表的评论总结:

  • 如果您尝试将数据发送到 curl url,您需要使用CURLOPT_POSTFIELDS
  • 对于标题 Content-length 0 值可能成为一个问题
  • 查看您是否真的连接到 URL(例如例如,您是否需要传递用户名、密码身份验证),您可能想要回显返回的 header CURLOPT_HEADER
  • 您的 URL 似乎是带有名称/值对的 GET 请求,但您将 curl 调用为 POST
  • 一个非常好的引用是在 PHP.net http://php.net/manual/en/function.curl-setopt.php

关于php - 使用 curl 在现场发布数据以进行 Expedia 预订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31160044/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com