2017-05-23 5 views
1

POST 및 GET을 처리 할 기본 C# 서버를 구현하기 시작했습니다.httpWebRequest to HttpListener 게시

private static HttpListener listener; 

private static void CreateListener() 
{ 
    listener = new HttpListener(); 
    listener.Prefixes.Add("http://localhost:1234/"); 
    listener.Start(); 
    listener.BeginGetContext(Process, listener); 
    Console.WriteLine("Listening..."); 
} 
private static void Process(IAsyncResult result) 
{ 
    HttpListenerContext context = listener.EndGetContext(result); 
    listener.BeginGetContext(Process, listener); 
    Console.WriteLine(context); 
    Console.ReadLine(); 
} 

기본적인 httpWebRequest 그것을 테스트하는 시도 :

private static void Post(string webAddress) 
{ 
    var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddress); 
    httpWebRequest.ContentType = "application/json; charset=utf-8"; 
    httpWebRequest.Method = "POST"; 
    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
    { 
     string json = new JavaScriptSerializer().Serialize("Some POSTed Data"); 
     streamWriter.Write(json); 
     streamWriter.Flush(); 
    } 
} 
public static void Main(string[] args) 
{ 
    CreateListener(); 
    Post("http://localhost:1234/"); 
    Console.WriteLine("Got here!!"); 
    Console.ReadLine(); 
} 

을하지만 Process 기능을 트리거하지 않는 것

나는 다음 있습니다. 왜 그런가요?

+0

Con't에 여기에 대한 정보를 찾을 수 있습니다. 클라이언트로부터 요청이 필요합니다. – jdweng

답변

1

서버에 요청을 보내고 응답을 받으려면 httpWebRequest.GetResponse()으로 전화해야합니다. 연결이 클라이언트에서 수신 될 때까지

당신은 MSDN