gpt4 book ai didi

php - PHP Curl从aws返回404,但可以在其他主机甚至我的机器上运行

转载 作者:行者123 更新时间:2023-12-02 14:20:26 25 4
gpt4 key购买 nike

一直在为此打我头。我已经编写了php代码来搜索网站https:paytm.com,该网站可从我以前使用过的其他托管站点上运行,但不能从AWS上运行。

我的机器正在使用php7运行ubuntu,curl已安装并正在运行。使用curl的搜索适用于其他站点,curl https也适用。相同的代码在其他主机(通过ssh和前端)上也能出色地工作,甚至可以在浏览器中工作。

我尝试访问的网址是curl -v 'https://search.paytm.com/search/?page_count=1&items_per_page=10&quality=high&curated=1&cat_tree=1&from=organic&channel=web&version=2&userQuery=iphone'
我检查过的事情:

  • 证书是最新的
  • 该代码在我的机器和其他托管服务提供商
  • 上正常工作
  • AWS设置是ubuntu 12.04,运行php
  • 再次设置机器
  • 从浏览器
  • 运行脚本
  • 从我的AWS设置中检查Google,Twitter,linkedIn上的https curl,它们工作正常。

  • 来自我的AWS设置的结果响应是:

    ubuntu @ ip-172-31-20-200:/ usr / local / share $ curl -v https://search.paytm.com/search/?page_count=1&items_per_page=10&quality=high&curated=1&cat_tree=1&from=organic&channel=web&version = 2&userQuery = iphone
    [1] 12595
    [2] 12596
    [3] 12597
    [4] 12598
    [5] 12599
    [6] 12600
    [7] 12601
    [8] 12602
    ubuntu @ ip-172-31-20-200:/ usr / local / share $ *在DNS缓存中未找到主机名
    *尝试96.6.72.42 ...
    *连接到search.paytm.com(96.6.72.42)端口443(#0)
    *成功设置证书验证位置:
    * CAfile:无
    CApath:/ etc / ssl / certs
    * SSLv3,TLS握手,客户端问候(1):
    * SSLv3,TLS握手,服务器问候(2):
    * SSLv3,TLS握手,CERT(11):
    * SSLv3,TLS握手,服务器密钥交换(12):
    * SSLv3,TLS握手,服务器完成(14):
    * SSLv3,TLS握手,客户端密钥交换(16):
    * SSLv3,TLS更改密码,客户端问候(1):
    * SSLv3,TLS握手,已完成(20):
    * SSLv3,TLS更改密码,客户端问候(1):
    * SSLv3,TLS握手,已完成(20):
    *使用ECDHE-RSA-AES256-GCM-SHA384的SSL连接
    *服务器证书:
    *主题:C = IN; ST =北方邦; L =诺伊达; O = One 97 Communications Limited; CN = secure.paytm.in
    *开始日期:2015-10-29 00:00:00 GMT
    *到期日期:2016-10-28 23:59:59 GMT
    * subjectAltName:search.paytm.com已匹配
    *发行者:C = US; O = GeoTrust Inc .; CN = GeoTrust SSL CA-G3
    * SSL证书验证成功。
    > GET / search /?page_count = 1 HTTP / 1.1
    >用户代理:curl / 7.35.0
    >主持人:search.paytm.com
    >接受:* / *
    >

    找不到404

    找不到404
    Nginx的


    *与主机search.paytm.com的连接#0保持不变

    结果来自不同的托管服务提供商(以及我自己的计算机):

    [ps527167] $ curl -v https://search.paytm.com/search/?page_count=1&items_per_page=10&quality=high&curated=1&cat_tree=1&from=organic&channel=web&version=2&userQuery=iphone
    [1] 26241
    [2] 26242
    [3] 26243
    [4] 26244
    [5] 26245
    [6] 26246
    [7] 26247
    [8] 26248
    [2]完成items_per_page = 10
    [3]完成质量=高
    [4]完成策划= 1
    [5]完成cat_tree = 1
    [6]来自有机
    [7]-完成 channel =网络
    [ps527167] $ *在DNS缓存中未找到主机名
    *尝试23.218.97.132 ...
    *已连接到search.paytm.com(23.218.97.132)端口443(#0)
    *成功设置证书验证位置:
    * CAfile:无
    CApath:/ etc / ssl / certs
    * SSLv3,TLS握手,客户端问候(1):
    * SSLv3,TLS握手,服务器问候(2):
    * SSLv3,TLS握手,CERT(11):
    * SSLv3,TLS握手,服务器密钥交换(12):
    * SSLv3,TLS握手,服务器完成(14):
    * SSLv3,TLS握手,客户端密钥交换(16):
    * SSLv3,TLS更改密码,客户端问候(1):
    * SSLv3,TLS握手,已完成(20):
    * SSLv3,TLS更改密码,客户端问候(1):
    * SSLv3,TLS握手,已完成(20):
    *使用ECDHE-RSA-AES256-GCM-SHA384的SSL连接
    *服务器证书:
    *主题:C = IN; ST =北方邦; L =诺伊达; O = One 97 Communications Limited; CN = secure.paytm.in
    *开始日期:2015-10-29 00:00:00 GMT
    *到期日期:2016-10-28 23:59:59 GMT
    * subjectAltName:search.paytm.com已匹配
    *发行者:C = US; O = GeoTrust Inc .; CN = GeoTrust SSL CA-G3
    * SSL证书验证成功。
    > GET / search /?page_count = 1 HTTP / 1.1
    >用户代理:curl / 7.35.0
    >主持人:search.paytm.com
    >接受:* / *

    HTTP / 1.1 200 OK
    内容类型:application / json;字符集= utf-8
    服务器openresty未列入黑名单
    服务器:openresty
    严格的运输安全性:最大年龄= 31536000
    严格的运输安全性:最大年龄= 31536000
    X-Frame-Options:SAMEORIGIN
    X-PAYTM-SRV-ID:pawslmktsearchapp04
    日期:2016年6月6日星期一15:22:18 GMT
    内容长度:907
    连接:保持 Activity 状态
    与主机search.paytm.com的连接#0保持不变

    {“result_type”:“网格”,“default_sorting_param”:“sort_relevance = 1”,“meta”:{“version”:“1.0.0”,“query”:null,“category”:[],“mappedQuery” :null},“sorting_keys”:[{“name”:“Relevance”,“urlParams”:“sort_relevance”,“default”:“sort_relevance = 1”},{“name”:“New”,“urlParams”: “sort_new”,“默认”:“sort_new = 1”},{“名称”:“价格”,“urlParams”:“sort_price”,“默认”:“sort_price = 0”}]],“frontend_filters”:[] ,“过滤器”:[{“标题”:“库存”,“值”:[{“id”:“0”,“名称”:“0”},{“id”:“1”,“name“:” In-Stock“}],” filter_param“:”可用性“,” type“:” boolean“}],” search_suggestion“:null,” has_more“:false,” total_count“:0,” grid_layout“:[], “featured_products”:[], “related_searches”:[], “search_user_id”: “eyJhbGciOiJIUzI1NiJ9.NjZmN2M3OWMtODllZC00OTRjLWI2MDYtNjNiODhlNWE4MTZi.7RvVFv4nDejWf4joXgy_TMdVaaQRTC2F-QPP6FvU_gQ”, “SEARCH_ID”: “eyJhbGciOiJIUzI1NiJ9.N2JhYzJkNjYtZWE4Ny00OTVmLWE2NzktMTlmM2QwNzY2OWI2.o9dbkUxVEWk8j8PdZnafMzxuAIzubTY9TJFiwyhEy8Q”}
    [1]-完成curl -v https://search.paytm.com/search/?page_count=1
    [8] +完成版本= 2

    真的很困惑,尝试搜索堆栈溢出到核心,发现很少有解决方案,例如设置cookie或用户代理,但都无法使用,如果您看到其他主机的用户代理字符串也设置为相同但是它返回正确的响应,甚至可以运行相同版本的ubuntu。如果我能从社区中获得任何帮助,那将是很棒的。

    总结一下,我在ubuntu,terminal,ssh等方面的技能水平是刚刚发现的,因此您可能必须制定条款并以基本方式提供帮助...对此感到抱歉。

    最佳答案

    您的问题是您没有转义网址。 &对shell有意义。

    请尝试以下操作:

    curl -v 'https://search.paytm.com/search/?page_count=1&items_per_page=10&quality=high&curated=1&cat_tree=1&from=organic&channel=web&version=2&userQuery=iphone'

    线索是这样的输出:
    [1] 26241
    [2] 26242
    [3] 26243
    [4] 26244
    [5] 26245
    [6] 26246
    [7] 26247
    [8] 26248
    [2] Done items_per_page=10
    [3] Done quality=high
    [4] Done curated=1
    [5] Done cat_tree=1
    [6] Done from=organic
    [7]- Done channel=web

    这些是 shell 后台作业。它实际上是在尝试运行以下命令并将其置于后台:
    $ curl -v 'https://search.paytm.com/search/?page_count=1 &
    $ items_per_page=10 &
    $ quality=high &
    [... and so on ...]

    关于php - PHP Curl从aws返回404,但可以在其他主机甚至我的机器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37661928/

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