2017-03-05 13 views
0

私はPythonリクエストライブラリの代わりにソケットライブラリを使用してFirebaseで自分のデータベースにアクセスしようとしています。私はファイアベースからのPythonソケットを使用してデータを取得

b'Invalid Firebase Request' 
Time 0.10938119888305664 

は、私はほとんどとき

import socket 
import ssl 
import time 
import requests 



HOST = '<my database link>.firebaseio.com' 
PORT = 443  
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: 
    ss = ssl.wrap_socket(s, ssl_version=ssl.PROTOCOL_TLSv1) 
    ss.connect((HOST, PORT)) 
    for i in range(1): 
     ts = time.time()  
     request = "GET /<A database child>.json \nHost: "+ HOST+"\n\n" 
     ss.send(request.encode()) 
     result = ss.recv(4096) 
     #print (result) 
     while (len(result)>0): 
      print (result) 
      result = ss.recv(4096) 
     print ('Time '+ str(time.time()-ts)) 

も私の(「得ることはありませポストすべき」)クライアントと火災ベースサーバー間の待ち時間を短縮しようとして返す単純な例を持っているベロー私はプログラムが複数の要求をしない以上の範囲を1増加させます。どうしてこれなの?

答えて

1

不正な形式のHTTP(S)要求を送信しようとしているようです。有効なHTTP 1.1リクエストは、次のようになります

request = "GET /<A database child>.json HTTP/1.1\r\n" \ 
      "Host: " + HOST + "\r\n"     \ 
      "Connection: keep-alive\r\n"    \ 
      "\r\n" 

無効な要求サーバーが明らかに接続を閉じ受け取った後、このようにあなたがから読み取ることができません(でもへの書き込み)もうソケットss

+0

awersome!私は安定したオープンな接続を得る:D –

関連する問題