Erreur de connexion: Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement après une période de temps
Je suis le développement de certains logiciels en python qui utilise la Vapeur d'Api. Je suis en utilisant le Flacon pour exécuter et tester le code python. Tout était en train de gonfler, mais maintenant j'ai cette erreur (je n'ai pas changé le code):
("Connexion interrompue.', erreur(10060, " Une tentative de connexion a échoué
car le parti connecté n'a pas répondu convenablement après une période de
temps, ou une connexion établie a échoué car l'hôte connecté a
n'a pas pu répondre'))
Je n'ai aucune idée de pourquoi cette erreur est à venir, parce que le code fonctionne parfaitement bien et tout à coup l'erreur vient d'en haut, et je n'ai rien changé dans le code ou avec mon ordinateur ou Flacon.
Le code:
import urllib
import itertools
import urllib2
import time
from datetime import datetime
from bs4 import BeautifulSoup
from flask import Flask
import requests
import json
import xml.etree.ElementTree as ET
from xml.dom.minidom import parseString
import sys
app = Flask(__name__)
API_KEY = 'XXX'
API_BASEURL = 'http://api.steampowered.com/'
API_GET_FRIENDS = API_BASEURL + 'ISteamUser/GetFriendList/v0001/?key='+API_KEY+'&steamid='
API_GET_SUMMARIES = API_BASEURL + 'ISteamUser/GetPlayerSummaries/v0002/?key='+API_KEY+'&steamids='
PROFILE_URL = 'http://steamcommunity.com/profiles/'
steamIDs = []
myFriends = []
class steamUser:
def __init__(self, name, steamid, isPhisher):
self.name = name
self.steamid = steamid
self.isPhisher = isPhisher
def setPhisherStatus(self, phisher):
self.isPhisher = phisher
@app.route('/DeterminePhisher/<steamid>')
def getFriendList(steamid):
try:
r = requests.get(API_GET_FRIENDS+steamid)
data = r.json()
for friend in data['friendslist']['friends']:
steamIDs.append(friend['steamid'])
return isPhisher(steamIDs)
except requests.exceptions.ConnectionError as e:
return str(e.message)
def isPhisher(ids):
phisherusers = ''
for l in chunksiter(ids, 50):
sids = ','.join(map(str, l))
try:
r = requests.get(API_GET_SUMMARIES+sids)
data = r.json();
for i in range(len(data['response']['players'])):
steamFriend = data['response']['players'][i]
n = steamUser(steamFriend['personaname'], steamFriend['steamid'], False)
if steamFriend['communityvisibilitystate'] and not steamFriend['personastate']:
url = PROFILE_URL+steamFriend['steamid']+'?xml=1'
dat = requests.get(url)
if 'profilestate' not in steamFriend:
n.setPhisherStatus(True);
phisherusers = (phisherusers + ('%s is a phisher' % n.name) + ', ')
if parseString(dat.text.encode('utf8')).getElementsByTagName('privacyState'):
privacy = str(parseString(dat.text.encode('utf-8')).getElementsByTagName('privacyState')[0].firstChild.wholeText)
if (privacy == 'private'):
n.setPhisherStatus(True)
phisherusers = (phisherusers + ('%s is a phisher' % n.name) + ', ')
elif 'profilestate' not in steamFriend:
n.setPhisherStatus(True);
phisherusers = (phisherusers + ('%s is a phisher' % n.name) + ', ')
else:
steamprofile = BeautifulSoup(urllib.urlopen(PROFILE_URL+steamFriend['steamid']).read())
for row in steamprofile('div', {'class': 'commentthread_comment '}):
comment = row.find_all('div', 'commentthread_comment_text')[0].get_text().lower()
if ('phisher' in comment) or ('scammer' in comment):
n.setPhisherStatus(True)
phisherusers = (phisherusers + ('%s is a phisher' % n.name) + ', ')
myFriends.append(n);
except requests.exceptions.ConnectionError as e:
return str(e.message)
except:
return "Unexpected error:", sys.exc_info()[0]
return phisherusers
def chunksiter(l, chunks):
i,j,n = 0,0,0
rl = []
while n < len(l)/chunks:
rl.append(l[i:j+chunks])
i+=chunks
j+=j+chunks
n+=1
return iter(rl)
app.run(debug=True)
Je voudrais avoir une explication de ce qu'est l'erreur signifie, et pourquoi ce qui se passe. Merci à l'avance. J'apprécie vraiment l'aider.
OriginalL'auteur Vishwa Iyer | 2014-11-02
Vous devez vous connecter pour publier un commentaire.
Bien, ce n'est pas le flacon d'erreur, de Son fond de python erreur de socket
comme 10060 semble être une erreur de dépassement de délai, est-il possible que le serveur est très lent dans l'acceptation et l'
si le site s'ouvre dans votre navigateur,il est possible que votre navigateur a le plus de délai d'expiration de seuil?
essayez d'augmenter le temps de la demande dans la demande.get()
si le serveur distant est également sous votre accès :
Vous n'avez pas besoin de bind (sauf si le serveur distant a une attente de l'arrivée de socket) - il est extrêmement rare que ce serait en fait une exigence pour vous connecter.
les demandes.get("github.com", timeout=5) docs.python-requests.org/en/latest/user/quickstart/#timeouts
Merci, cela a aidé!
OriginalL'auteur Harsh Daftary
Je crois que c'est parce steamcommunity du serveur instable ou peu de problème..
Habituellement,vous ne pouvez pas résoudre le net secouer.Mais il existe encore certaines méthodes peuvent aider à u.
Tout d'abord,lorsque vous attrapez le net d'erreur,vous laissez votre fils dormir une secondes, puis essayez à nouveau!
Deuxième,je suggère u utilisation en Flacon de Cache pour cela, comme la mise en cache de 60 secondes,cela aidera u réduire les requêtes http.
OriginalL'auteur gkiwi
Dans mon expérience, ces "parti connecté n'a pas responde après une période de temps", spécialement quand le même code utilisé pour le travail avant, sont généralement liées à des MTU tailles. Habituellement, vous devriez juste déterminer le maximum de la taille MTU (n'oubliez pas d'ajouter 28 octets, comme expliqué dans le lien) et puis vous pouvez modifier la taille de la MTU dans votre ordinateur client.
OriginalL'auteur drizin