2011-07-08 68 views
0

我有一個發送POST HTTP請求的問題。它停止在(HttpWebResponse)request.GetResponse()和超時後引發超時過期異常,但如果我通過GET發送相同的請求,所有工作正常。發送POST請求REST API方法調用

有沒有人知道它可能是什麼?

try 
     { 
      var request = (HttpWebRequest)WebRequest.Create(uri); 
      request.Method = "POST"; 

      if (content != null) 
       request.GetRequestStream().Write(content, 0, content.Length); 

      using (var response = (HttpWebResponse)request.GetResponse()) 
      { 
       return new Response(response); 
      } 
     } 
     catch (WebException exception) 
     { 
      return new Response(exception); 
     } 
+0

請創建一個答案,你自己的問題,並接受它。 – Cheesebaron

回答

0

固定的問題與此代碼:

 using (var requestStream = request.GetRequestStream()) 
     { 
      if (content != null) 
      { 
       requestStream.Write(content, 0, content.Length); 
      } 

      requestStream.Close(); 

      using (var response = (HttpWebResponse)request.GetResponse()) 
      { 
       return new Response(response); 
      } 
     } 
0

這很可能是由於服務器上的代碼沒有將此方法公開爲POST。如果服務器沒有明確設置anyhting,則默認爲僅GET。

+0

我已經回答了這個問題。 – mironych