如何获取传入的HTTP请求的FULL URI作为python中的字符串?

时间:2019-04-29 22:19:19

标签: python-3.7

语言:python 3.7

前言:我绝对是编码,设置服务器以及其他方面的新手。请放轻松,因为对于5岁的程序员来说,平常的事情对我来说完全是陌生的概念。

我正在尝试构建一个在本地运行的抽搐聊天机器人。它需要使用oauth2来允许机器人代表抽搐用户采取行动。首先,您必须将抽搐用户发送到站点,然后当他们登录抽搐时,他们将被重定向。我已将其设置为将其重定向到127.0.0.1,并且这样做时,它实际上将其重定向至“ 127.0.0.1/bunchofinformation”

我将用户定向到站点,他们正在授权站点上的python脚本,然后将用户重定向回该脚本。我从Web浏览器收到请求,但是我需要将整个URL作为字符串获取,因为它将用户重定向到127.0.0.1/bunchofinformation。 使用我拥有的代码,它将告诉我我从127.0.0.1获得请求,但是我不知道如何获取完整的URL,以后需要将其传递给变量

我已经浏览了我正在使用的所有库的文档,但我只是找不到一种以字符串形式获取FULL URL的方法,它只是告诉我传入请求来自127.0.0.1,如果我删除了.strip()函数,它为我提供了包括Web浏览器类型在内的更多信息,但仍将URL保留为127.0.0.1。任何帮助将不胜感激,我随时可以回答任何问题。

import requests
import webbrowser
import http.server
import socketserver
import socket
import urllib.request

class MyTCPRequestHandler(socketserver.StreamRequestHandler):

    def handle(self): # handle() method will be called once per connection

        print("Recieved one request from {}".format(self.client_address[0]))

        msg = self.rfile.read().strip()

        print("Data Recieved from client is:".format(msg))

        print(msg)

webbrowser.open("website.i.need.them.to.visit")

PORT = 80

Handler = MyTCPRequestHandler 


with socketserver.TCPServer(("127.0.0.1", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.handle_request()

0 个答案:

没有答案