2014-10-21 8 views
1

Nimrod로 조금 놀고 있는데 HTTPServer 모듈을 사용해 보았습니다. 처음에는 표준 브라우저 인 Safari의 웹 페이지로 이동하려고 시도했을 때 오류가 발생했습니다. 이 오류는 다음과 같이이었다 : (죄송합니다 정확히 바로이 아닌 경우,이 네덜란드에서 번역 된 것)nimrod httpserver가 사파리에서 작동하지 않습니다.

사파리 사파리가 열리지 페이지 로컬 호스트 수있는이 페이지 열 수 없습니다 : 5000, 네트워크 연결이되었습니다로를 내가 크롬이나 파이어 폭스에서 페이지를 열려고하면, 그것은 잘 작동, 예기치 않게

을 잃었지만

내 니므롯 코드 :

import strutils, sockets, httpserver 

var counter = 0 
proc handleRequest(client: TSocket, path, query: string): bool {.procvar.} = 
    inc(counter) 
    client.send("Hello for the $#th time." % $counter & wwwNL) 
    return false # do not stop processing 

run(handleRequest, TPort(5000)) 

답변

2

HTTP 상태 표시 줄이나 헤더를 추가하지 않고도 client.send가 유선에 직접 쓰는 것처럼 보입니다. 당신은 적어도 상태 표시 줄을 추가하여 작업 할 수 있습니다 :

import strutils, sockets, httpserver 

var counter = 0 
proc handleRequest(client: TSocket, path, query: string): bool {.procvar.} = 
    inc(counter) 
    client.send("HTTP/1.0 200 OK\r\n\r\nHello for the $#th time." % $counter & wwwNL) 
    return false # do not stop processing 

run(handleRequest, TPort(5000)) 
+0

이 대답은 올바르지 만 같은 웹 응용 프로그램을 작성하기위한 높은 수준의 프레임 워크를 사용하는 것이 좋습니다 낮은 수준의 세부 정보를 처리하지 않도록하려면 jester : https://github.com/dom96/jester – zah