2017-06-20 67 views
1

嗨,我想要Python Socket Connect Poloniex APIPython Socket Connect poloniex

我跑了代碼。但我無法得到我想要的結果。

我做了代碼:

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

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日2時52分22秒GMT

的Content-Type:text/html的

的Content-Length:275

連接:關閉CF-RAY: - 400簡單的HTTP請求被髮送到HTTPS端口

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

回答

0

錯誤消息是正確的 - 您正在向HTTP端口443發送HTTP請求,這是HTTPS端口。如果您要發送一個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,因爲它是一個更簡單的選項。