CURL命令不能使用简单的HTTP GET,但浏览器可以

时间:2016-03-20 02:51:30

标签: http curl

我尝试从https://m.jetstar.com/Ink.API/api/flightAvailability?LocaleKey=en_AU&ChildPaxCount=0&DepartureDate=2016-03-21T00%3A00%3A00&ModeSaleCode=&Destination=NGO&CurrencyCode=TWD&AdultPaxCount=1&ReturnDate=&InfantPaxCount=0&Origin=TPE

获取数据

curl -vv https://m.jetstar.com/Ink.API/api/flightAvailability?LocaleKey=en_AU&ChildPaxCount=0&DepartureDate=2016-03-21T00%3A00%3A00&ModeSaleCode=&Destination=NGO&CurrencyCode=TWD&AdultPaxCount=1&ReturnDate=&InfantPaxCount=0&Origin=TPE无法完成任何操作, 但是,浏览器可以获取整个数据。

这有什么问题?

2 个答案:

答案 0 :(得分:1)

在我看来," m.jetstar.com"过滤不包含浏览器将发送的标头的请求。您的curl语句需要完全模拟浏览器才能获取数据。一种查看我所说的内容的方法是在Google Chrome中打开开发人员工具,选择网络标签,在浏览器中运行网址,然后转到指示通话的行并右键单击,然后将请求复制为卷曲声明,然后将其粘贴到记事本中,您将看到所需的所有其他标题。此外,该curl语句应该有效。

答案 1 :(得分:0)

检查是否为代理设置设置了任何HTTP_REQUEST变量。通过在详细模式下调用curl命令进行验证。卷曲-v

我早些时候设置了一个变量,当我以详细模式检查curl输出时,它告诉我它将去代理地址。从高级系统设置中删除HTTP_REQUEST变量后,它开始工作。希望对您有所帮助。