2

Google API とやり取りし、oauth2 によるユーザー認証を必要とする Python アプリを作成しています。

現在、ローカル認証サーバーをセットアップして、Google の oauth サーバーから oauth2 認証コードを受け取り、基本的にこのような oauth ダンスを行っています。

通常はかなりうまく機能しますが、他のアプリ (私のテストの場合、SABNzbd++ ) がそのポートを使用しています。

使用中のポート番号にポートを割り当てると、エラーが発生して再試行されると思いました。私は何を間違っていますか (または、SABNzbd++ がポート 8080 でリッスンしているという事実をアプリから隠しているのは何ですか?)

関連するコードは次のとおりです。

import socket
import BaseHTTPServer
from oauth2client.tools import ClientRedirectServer, ClientRedirectHandler

port_number = 0
host_name = 'localhost'
for port_number in range(8080,10000):
    try:
        httpd = ClientRedirectServer((host_name, port_number),
                                   ClientRedirectHandler)
    except socket.error, e:
        print "socket error: " + str(e)
        pass
    else:
        print "The server is running on: port " + str(port_number)
        print "and host_name " + host_name
        break

明確にするために、以下は私の期待される結果です

socket error: [port already in use] (or something like that)
The server is running on: port 8081
and host_name localhost

次に、localhost:8080 に移動すると SABnzbd+ に解決され、localhost:8081 は認証サーバーに解決されます。

しかし、私は得ています:

the server is running on: port 8080
and host_name localhost

しかし、localhost:8080 に行くと SABNzbd+ に解決されます

前もって感謝します!

4

0 に答える 0