python错号ss

2024-09-30 06:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直试图通过ssl加密的低级套接字模块连接到googlegeocoder api。在这里的API_key_的地方,我实际上在脚本中有我自己的API。在

每次执行脚本时,ssl都会出现以下错误“ssl.SSLError:[SSL:error_VERSION_NUMBER]错误的版本号(_SSL.c:847)” 我运行的是linuxmint,Python是3.6。在

import socket
from urllib.parse import quote_plus
import ssl

key = "API_key_here"
text = """\
GET /maps/api/geocode/json?key={}&address={}&sensor=false HTTP/1.1\r\n
Host: maps.google.com:80\r\n
User-Agent: 1-4-socket-geocoding-py-network.py\r\n
Connection: close\r\n
"""


def geocode(address):
    sock = socket.socket()
    context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)

    sock_ssled = context.wrap_socket(sock, server_hostname="maps.google.com")
    print(sock_ssled.version)
    context.verify_mode = ssl.CERT_REQUIRED
    context.check_hostname = True
    sock_ssled.connect(("maps.google.com", 80))
    request = text.format(key, quote_plus(address))

    sock_ssled.sendall(request.encode("ascii"))
    rawreply =b""
    while True:
        more = sock_ssled.recv(4096)
        if not more:
            break
        rawreply += more
    print (rawreply.decode("utf-8")) 

if __name__ == "__main__":
    geocode ('207 N. Defiance St, Archbold, OH')

下面是错误输出

^{pr2}$

Tags: keyimportcomapissladdress错误google

热门问题