Amazon web services http请求/tracks/{id}来自AWS其他云提供商的403状态代码,但本地为200

Amazon web services http请求/tracks/{id}来自AWS其他云提供商的403状态代码,但本地为200,amazon-web-services,python-requests,soundcloud,Amazon Web Services,Python Requests,Soundcloud,从不同VPC内部或从EC2 Classic返回403状态代码的任何AWS框向/tracks/{id}端点发送http请求,但是从本地机器发送的相同http请求返回200请求的数据。这可以通过使用python的请求库和curl实现 编辑: 使用谷歌计算引擎和数字海洋进行测试,两者都表现出同样的不良行为 使用?idsurl参数,我可以卷曲/tracks?ids=[bad\u id] i、 e. 不工作:curlhttps://api.soundcloud.com/tracks/182343690?c

从不同VPC内部或从EC2 Classic返回
403
状态代码的任何AWS框向
/tracks/{id}
端点发送http请求,但是从本地机器发送的相同http请求返回
200
请求的数据。这可以通过使用python的请求库和curl实现

编辑:

使用谷歌计算引擎和数字海洋进行测试,两者都表现出同样的不良行为

使用
?ids
url参数,我可以卷曲
/tracks?ids=[bad\u id]

i、 e.
不工作:
curlhttps://api.soundcloud.com/tracks/182343690?client_id=XXX

作品:
curlhttps://api.soundcloud.com/tracks/?client_id=XXX&ids=182343690

注意:在请求内部都不工作

但是,以下方法确实有效

import subprocess
subprocess.Popen("curl https://api.soundcloud.com/tracks/?client_id=XXX&ids=182343690", shell=True, stdout=subprocess.PIPE).stdout.read()

我不知道这是否相关,但我在使用PHP的令牌和curl方面遇到了一些问题

最后,我在curl请求中添加了SSL选项,解决了我的问题

代码片段

try {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  ...
  curl_setopt($ch, CURLOPT_VERBOSE, 1);
  $info = curl_getinfo($ch);
  $response = curl_exec($ch);
  $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
  $header = substr($response, 0, $header_size);
  $body = substr($response, $header_size);      
  $result = $body;
  ...
  curl_close($ch);
} catch(Exception  $e) {
  $this->writeLog('authToken() Error Message: ' .$e->getMessage());
}

我注意到head请求
curl-I
总是有效的。请看我的问题:同样,这似乎是同一个问题: