2016-11-04 14 views
0

私のローカルサーバーから自分のサイトを削り取ろうとしています。しかし、私はPythonのリクエストを使用すると、それは私に応答503を与えます。ウェブ上の他の普通のサイトが動作します。これに対する理由/解決策は?503ローカルWebサイトでPythonリクエストを使用しようとしたときに応答します

<Response [503]> 

アウト

import requests 
url = 'http://127.0.0.1:8080/full_report/a1uE0000002vu2jIAA/' 

r = requests.get(url) 

print r 

プリントさらなる調査の後、私は私に同様の問題を発見しました。 Python requests 503 erros when trying to access localhost:8000

しかし、私は彼がまだそれを解決しているとは思わない。私はウェブブラウザ経由でローカルウェブサイトにアクセスできますが、requests.get機能を使用してアクセスすることはできません。私はDjangoを使ってサーバーをホストしています。

python manage.py runserver 8080 

私が使用: カール-vvv http://127.0.0.1:8080

* Rebuilt URL to: http://127.0.0.1:8080/ 
* Trying 10.37.135.39... 
* Connected to proxy.kdc.[company-name].com (10.37.135.39) port 8099 (#0) 
* Proxy auth using Basic with user '[company-id]' 
> GET http://127.0.0.1:8080/ HTTP/1.1 
> Host: 127.0.0.1:8080 
> Proxy-Authorization: Basic Y2FhNTc2OnJ2YTkxQ29kZQ== 
> User-Agent: curl/7.49.0 
> Accept: */* 
> 
< HTTP/1.1 301 Moved Permanently 
< Server: BlueCoat-Security-Appliance 
< Location:http://10.118.216.201 
< Connection: Close 
< 
<HTML> 
<HEAD><TITLE>Redirection</TITLE></HEAD> 
<BODY><H1>Redirect</H1></BODY> 
* Closing connection 0 
+0

彼はそれを解決しました - あなたはコメントを読めば。*何が起きているかを見つけ、内部ソフトウェアがポートを妨害していた。だから私は自分の家のPCで試したときに、それは完全に働いた。* – Craicerjack

+0

あなたのURLに指定されたポート番号はありません。 Djangoは 'http://127.0.0.1:8000 /'にデフォルトサーバーを実行していますので、 'url = 'http://127.0.0.1:8000/full_report/a1uE0000002vu2jIAA/' ' – Craicerjack

+0

のように最後の行を見てください。上記のコマンドのurlは 'http://127.0.0.1:8080/.... 'でなければなりません。 – Craicerjack

答えて

2

私の会社のネットワークソフトウェアが許可しないので、私はpythonリクエストを使ってローカルURLを要求できません。これは行き止まりであり、他の手段を追求しなければならない。

EDIT:作業溶液

>>> import requests 
>>> session = requests.Session() 
>>> session.trust_env = False 
>>> r = session.get("http://127.0.0.1:8080") 
>>> r 
<Response [200]> 
+0

ローカルデバイスの設定ではなく、ネットワーク上の設定であることを確認してください。 'curl --noproxy '*' 127.0.0.1:8080'を使うとどうなりますか? – cwallenpoole

+1

はい、プロキシが自分自身にpingをブロックしていました。解決策が掲載されました! –

0

HTTP Error 503は意味:

を(Webサイトを実行している)Webサーバが原因HTTPリクエストを処理するために、現在できませんサーバの一時的な過負荷またはメンテナンスに至ります。これは一時的な条件であり、いくらか遅れて緩和されるということです。この状態のサーバーの中には、単にソケット接続を拒否することもあります。その場合、ソケットの作成がタイムアウトするため、別のエラーが生成される可能性があります。

あなたは物事次の操作を行うことがあります。あなたは、ブラウザのURLが開いている場合は

  • でURLを開くコード内のドメインをチェックすることができます

    1. チェックは、それが正しくない可能性があります。
    2. ブラウザでも、それが開いていない場合は、あなたのサイトが過負荷にしてもよいし、サーバーのリソースが要求に実行することがいっぱいある
  • 0

    503エラーの最も一般的な原因は、何らかの形でのプロキシホストができないことですバックエンドと通信する。たとえば、ワニスが要求を処理しようとしているが、Apacheがダウンしている場合などです。

    あなたの場合、Djangoはポート8080で動作しています。 (それは8080の意味です)。しかし、127.0.0.1からコンテンツを取得しようとすると、デフォルトのHTTPポート(80)に行きます。これは、デフォルトのサーバー(Apacheでもおそらく?NginX?)が127.0.0.1を提供するホストを見つけようとしており、見つからないことを意味します。

    2つの選択肢があります。サーバーの構成を更新することも、URLにポートを含めることもできます。

    url = 'http://127.0.0.1:8080/full_report/a1uE0000002vu2jIAA/' 
    
    +0

    私は8080を使いました。その部分を編集するのを忘れました。私は今それを更新しました。ありがとうございました。 –

    関連する問題