2014-09-21 4 views
0

내 인생에서 나는 이것을 알 수 없습니다. 나는 Parse.com 위로 다음 코드가 :구문 분석 응답 124, 간단한 GET 요청에 대해 시간 초과되었습니다.

Parse.Cloud.httpRequest({ 
    method: "GET", 
    url: 'http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?9ZIG%EF%BC%B0%EF%BC%B2%EF%BC', 
    success: function(httpResponse) { 
     response.success(httpResponse.text); 
    }, 
    error: function(httpResponse) { 
     response.error('Request failed with response ' + httpResponse.status); 
    } 
}); 

그것은 간단한 GET 요청하지만 그것을 중단하고 약 10 초 후, Parse.com 오류 124 시간 종료 : 시간 초과를 요청합니다.

https://www.google.com 또는 https://parse.com을 대용하면 결과가 즉시 표시됩니다. 그래서 내가로드하려고하는 페이지라고 생각했지만 브라우저에서 http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?9ZIG%EF%BC%B0%EF%BC%B2%EF%BC에 액세스 할 수 있으며 즉시로드됩니다.

요청 또한 내가 컬을 사용하면 거의 즉시로드 :

curl -v http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?9ZIG%EF%BC%B0%EF%BC%B2%EF%BC 


* Adding handle: conn: 0x7fcb0c800000 
* Adding handle: send: 0 
* Adding handle: recv: 0 
* Curl_addHandleToPipeline: length: 1 
* - Conn 0 (0x7fcb0c800000) send_pipe: 1, recv_pipe: 0 
* About to connect() to www.csse.monash.edu.au port 80 (#0) 
* Trying 130.194.64.145... 
* Connected to www.csse.monash.edu.au (130.194.64.145) port 80 (#0) 
> GET /~jwb/cgi-bin/wwwjdic.cgi?9ZIG%EF%BC%B0%EF%BC%B2%EF%BC HTTP/1.1 
> User-Agent: curl/7.30.0 
> Host: www.csse.monash.edu.au 
> Accept: */* 
> 
< HTTP/1.1 200 OK 
< Date: Sun, 21 Sep 2014 02:30:23 GMT 
* Server Apache/1.3.26 (Unix) mod_layout/3.0.4 mod_ssl/2.8.10 OpenSSL/0.9.6e is not blacklisted 
< Server: Apache/1.3.26 (Unix) mod_layout/3.0.4 mod_ssl/2.8.10 OpenSSL/0.9.6e 
< Transfer-Encoding: chunked 
< Content-Type: text/html; charset=UTF-8 
< 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<HTML> 
<HEAD><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><TITLE>WWWJDIC: Text/word translation display</TITLE> 
</HEAD><BODY> 
<br> 
<FONT color="red">PR</FONT>。<br> 
<ul><li> PR 【ピーアール】 (n) (See パブリックリレーションズ) public relations; PR; ED </li> 
</ul><br> 
</BODY> 
</HTML> 
* Connection #0 to host www.csse.monash.edu.au left intact 

정말 간단한 뭔가 빠진해야 같은 느낌. 나는 모든 헤더를 추가했는데 아무런 변화도없는 것 같았다. 누구나 아이디어가 있습니까?

답변

1

좋아요. 제가 해결 했으니 시간이 걸렸습니다. Firstly Parse는 Cloud Code beforeSave, afterSave 및 cloud 기능 이외의 http 요청을 허용하지 않습니다. Parse Promise를 사용해야합니다.

그래서 클라우드 코드 설정에서 main.js이 같은 기능 testParse를 만들 :

Parse.Cloud.define("testParse", function(request, response) { 

    var promises = []; 

    promises.push(Parse.Cloud.httpRequest({ 
     method: "GET", 
     url: 'http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?9ZIG%EF%BC%B0%EF%BC%B2%EF%BC' 
    }); 

    Parse.Promise.when(promises).then(function(results) { 
     response.success(results.status); 
    }, function(error) { 
     response.error(error); 
    }); 
}); 

함수를 호출하려면이 솔루션은 작동

Parse.Cloud.run('testParse'); 

사용합니다. 그러나 시간의 단지 10 %를 좌절시키는 것. 나는 여전히 타임 아웃을 받는다.

편집 : 정상적으로 작동합니다. Parse.Cloud.define 오류 응답에서 함수를 다시 호출하십시오.

Parse.Promise.when(promises).then(function(results) { 
    response.success(results.status); 
}, function(error) { 
    Parse.Cloud.run('testParse'); 
}); 
+0

응답을 보내 주셔서 감사합니다. 이것은 매우 이상합니다. 그것은 약속없이 구글을 위해 작동하지만, 어떤 이유로 든이 웹 사이트에 대한 약속이 없으면 이상하지 않습니까? 당신은 그것이 약속과 비동기의 문제라면 그것이 모든 웹 사이트에서 실패 할 것이고 그들의 문서가 그렇게 말할 것이라고 생각할 것입니다 ... – rewon

+0

안녕하세요, rewon, 제가 에스컬레이션 된 버그로 제출했습니다 : 당신은 그것을 따라갈 수 있습니다. 여기 https://developers.facebook.com/bugs/339647946196502 –