2012-12-04 5 views
0

App Engine에서 두 페이지 사이에 간단한 http 요청/응답 통신을하려고합니다. 여기 코드는 다음과 같습니다AppEngine urlopen connection aborted [Errno 10053]

class MainHandler(webapp.RequestHandler): 
    def get(self): 
     values = {'id' : '9', 
      'number' : '10001', 
      'age' : '15828', 
      'name' : 'Squeak' } 
     data = urllib.urlencode(values) 
     request = urllib2.Request("http://localhost:8082/post", data) 
     response = urllib2.urlopen(request) 
     content = response.read() 
     self.response.out.write(content) 

class PostHandler(webapp.RequestHandler): 
    def post(self): 
     self.response.out.write(str(self.request.get('id')) + '<br>' + str(self.request.get('number')) + '<br>' + str(self.request.get('age')) + '<br>' + self.request.get('name')) 

내가 논문 핸들러를 할당에 '/'와 '/ 포스트'무슨 일이 것은 내가 DeadLineExceedError 내가 차단 된 생각, HTTP 응답, 대기 얻을 수 있다는 점이다 "는 estabilished 연결 때문에 호스트 시스템의 소프트웨어에 의해 중단되었습니다. "[Errno 10053]. 방화벽/바이러스 백신을 사용하지 못하게 시도했지만 여전히 작동하지 않았습니다. 분명히 App Engine을 처음 사용하지만,이 내용은 간단 할 것으로 예상됩니다. 왜 그런가? 나는 이미 이것으로 얼마 동안 고투하고있다.

+0

두 사이트를 브라우저에서 직접로드 할 수 있습니까? dev 서버는 스레드되지 않으므로 순차적으로 요청이 처리되지만 다른 포트에서 수신 대기중인 두 개의 별도 인스턴스가 있다고 가정합니다. – someone1

답변

1

처음에는 앱 엔진에 사용할 (데이터 제공) 포트를 선택하지 않으므로 시도해보십시오.

배포 된 서버에서이 작업을 시도해 보셨습니까? 주석 노트에서 로컬 및 배포에 대한 동작은 매우 다를 수 있습니다 (특히 여러 요청이있는 경우).

앱 엔진의 페이지는 요청이 완료 될 때마다 서로 이야기 할 수 없습니다.

그래서 아마 당신의 코드에 무슨 일이 일어나고 있는지 이것이다 :

당신은 POST 요청을합니다. 원래 요청을 처리 중이므로 해당 게시물 요청을 처리 할 수 ​​없습니다. 따라서 게시가 완료 될 때까지 대기열에 있습니다. 게시물이 완료되기를 기다리는 동안 get은 완료되지 않습니다.

또는 어쨌든 그런 것 같습니다.

이 코드로 얻으려고했던 것을 설명하고 별도의 질문으로 다시 질문하는 것이 더 나을 것입니다. 이 사실을 "고칠"방법이 없기 때문입니다.

+0

사실,'--port ='arg 명령을 사용하여 dev 서버를 청취 할 포트를 지정할 수 있습니다. 질문은 – someone1

+0

과 관련되어 있습니다.하지만 분명히 밝혀지고 싶었습니다. –

+0

빠른 답장을 보내고 늦게 받아 들여서 죄송합니다. 그것은 배포 된 서버에서 작동하지만 로컬 호스트에서 로컬 응용 프로그램은 멀티 스레드가 아니기 때문에 당신이 말한대로 절대로 실제로 완료되지 않습니다. – ericmux

관련 문제