Python Socket 连接

标签 python sockets poloniex

你好我要Python Socket Connect Poloniex API .
我运行了代码。但我无法得到我想要的结果。
我做了代码:
==================================================== ==================

import requests
import socket

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(("poloniex.com",443))

message="GET /public?command=returnTicker HTTP/1.1\r\nHost: poloniex.com\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: python-requests/2.18.1\r\n\r\n"

s.send(message)

print s.recv(5000)
==================================================== ==================
响应文本:

HTTP/1.1 400 Bad Request

Server: cloudflare-nginx

Date: Tue, 20 Jun 2017 02:52:22 GMT

Content-Type: text/html

Content-Length: 275

Connection: close CF-RAY: - 400 The plain HTTP request was sent to HTTPS port


==================================================== ==================

最佳答案

错误消息是正确的 - 您正在向 HTTPS 端口 443 端口发送 HTTP 请求。如果要发送 HTTP 请求,请使用端口 80。我刚刚尝试向端口 80 发送请求,响应说我应该从现在开始使用 HTTPS(参见 Location: https:// 部分):

HTTP/1.1 301 Moved Permanently
Date: Tue, 20 Jun 2017 13:40:52 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __cfduid=d28a8f446379618a093014a5f13bbcb141497966052; expires=Wed, 20-Jun-18 13:40:52 GMT; path=/; domain=.poloniex.com; HttpOnly
Location: https://poloniex.com/public?command=returnTicker
Server: cloudflare-nginx
CF-RAY: 371f2473b09f5a7a-BOS

在这种情况下,您应该使用 ssl模块而不是 socket , 或直接使用 requests因为它是一个更简单的选择。

关于Python Socket 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44643075/

相关文章:

python - Python 中不使用范围的高效迭代

linux - 如何使用多个选项的多个参数处理 bash

python - Poloniex API 'Total must be at least 0.0001' 错误

运行 cv2.Canny() 时 Emacs 中的 python opencv 错误

c++ - 几个带有 SWIG 的 numpy 数组

c - 在套接字 C 中发送字符串?

c# - 未从对服务器的 rcon 请求获得完整响应

python - 使用 Python autbahn 或其他套接字模块阅读 Poloniex Trollbox 上的消息?

python - 与字符串格式对齐

c - Linux x86_64 汇编套接字编程