cURL для soundcloud.com возвращает 500

#ubuntu #curl #request #soundcloud

#ubuntu #curl #запрос #soundcloud

Вопрос:

Я получаю следующий ответ 500 после попытки curl с моего

 # lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:   xenial
  

сервер.

 # curl -vvv -L soundcloud.com
* Rebuilt URL to: soundcloud.com/
*   Trying 72.21.91.127...
* Connected to soundcloud.com (72.21.91.127) port 80 (#0)
> GET / HTTP/1.1
> Host: soundcloud.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 500 Internal Server Error
< Cache-Control: no-cache
< Content-Type: text/html
< Date: Sat, 01 Oct 2016 05:03:52 GMT
< Server: am/2
< Content-Length: 87
<
<html><body><h1>500 Server Error</h1>
An internal server error occured.
</body></html>
* Connection #0 to host soundcloud.com left intact
  

Что загадочно, так это то, что это работало пару дней назад. Curl для github.com возвращает значение 200, так что я не думаю, что есть проблема с моим сетевым подключением. Я только что сделал sudo apt-get update amp;amp; sudo apt-get upgrade прямо перед публикацией этого вопроса. На моем ноутбуке те же запросы возвращают 200. Если у меня ограничена скорость, я должен вернуть 429. Я в замешательстве от того, что происходит на моем сервере. Могу ли я что-нибудь сделать для отладки? Я что-то упустил?

Обновление: использование прокси curl -vvv -L --proxy <random_http_proxy>:3128 http://soundcloud.com возвращает 200. Я так запутался.

Обновление 2: использование https: // не помогает

 root@cap:~# curl -vvv -L https://soundcloud.com
* Rebuilt URL to: https://soundcloud.com/
*   Trying 72.21.91.127...
* Connected to soundcloud.com (72.21.91.127) port 443 (#0)
* found 173 certificates in /etc/ssl/certs/ca-certificates.crt
* found 692 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_128_GCM_SHA256
*    server certificate verification OK
*    server certificate status verification SKIPPED
*    common name: *.soundcloud.com (matched)
*    server certificate expiration date OK
*    server certificate activation date OK
*    certificate public key: RSA
*    certificate version: #3
*    subject: OU=Domain Control Validated,CN=*.soundcloud.com
*    start date: Wed, 10 Feb 2016 10:19:25 GMT
*    expire date: Wed, 09 May 2018 10:08:48 GMT
*    issuer: C=BE,O=GlobalSign nv-sa,CN=GlobalSign Domain Validation CA - SHA256 - G2
*    compression: NULL
* ALPN, server accepted to use http/1.1
> GET / HTTP/1.1
> Host: soundcloud.com
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 500 Internal Server Error
< Cache-Control: no-cache
< Content-Type: text/html
< Date: Sun, 09 Oct 2016 20:58:53 GMT
< Server: am/2
< Content-Length: 87
<
<html><body><h1>500 Server Error</h1>
An internal server error occured.
</body></html>
* Connection #0 to host soundcloud.com left intact
  

Обновление 3

Проблема просто волшебным образом исправилась в том смысле, что она внезапно снова начала работать. Я отправил запрос в службу поддержки soundcloud.com и на следующий день проблема исчезла. Я не получил ответа о том, что они действительно предприняли какие-либо действия, такие как внесение моего IP-адреса в белый список, но я предполагаю, что именно это и произошло.

Ответ №1:

Попробуйте добавить префикс протокола https://

 curl -vvv -L https://soundcloud.com
  

Я не знаком с параметрами командной строки.

когда я использовал PHP curl с этими параметрами, это сработало.

 CURLOPT_SSL_VERIFYPEER, FALSE
CURLOPT_RETURNTRANSFER, TRUE
CURLOPT_FOLLOWLOCATION, TRUE
  

Требуется ключевой параметр CURLOPT_SSL_VERIFYPEER, FALSE
FOLLOWLOCATION требуется только для http:// , а не https://

Возвращает 400 ошибочных запросов вместо 500



Обновить

Я смог получить код ответа HTTP на 200, добавив заголовок запроса, который выглядит так же, как запрос браузера, но страница создается с использованием JavaScript. Итак, на странице написано «JavaScript отключен …»

Комментарии:

1. Удалось получить HTTP-ответ 200, см. ОБНОВЛЕНИЕ

2. Ну, я получаю 200 на другом сервере… Я начинаю думать, что мой IP-адрес занесен в черный список или что-то в этом роде. Есть ли какое-либо другое возможное объяснение?

3. Это не имеет значения, потому что вам нужен JavaScript для создания HTML. Отключите JavaScript в вашем браузере, и вы не сможете получить доступ к странице.