Python Socket Connect poloniex

时间:2017-06-20 02:57:16

标签: 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错误请求

     

服务器:cloudflare-nginx

     

日期:2017年6月20日星期二02:52:22 GMT

     

内容类型:text / html

     

内容长度:275

     

连接:关闭CF-RAY: - 400普通HTTP请求已发送到HTTPS端口

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

1 个答案:

答案 0 :(得分:0)

错误消息是正确的 - 您正在向作为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,因为它是一个更简单的选项。