2013-06-20 14 views
0

我使用標準java.net包發佈消息給休息的WEB服務。 這是我聯繫web服務併發布我的請求的方式。如何使用HttpURLConnection確定Web服務狀態?

package com; 

import java.io.IOException; 
import java.io.OutputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 

public class NetClientPost { 

    public static void main(String[] args) { 
     HttpURLConnection conn = null; 
     OutputStream os = null; 
     try { 

      URL url = new URL("http://localhost:8080/RestTest/ajax/user_info"); 
      conn = (HttpURLConnection) url.openConnection(); 

      // System.out.println(conn.getResponseCode()); 

      conn.setDoOutput(true); 
      conn.setRequestMethod("POST"); 
      conn.setRequestProperty("Content-Type", "application/json"); 

      String input = "{\"qty\":100,\"name\":\"sdsfds 4\"}"; 

      os = conn.getOutputStream(); 
      os.write(input.getBytes()); 
      os.flush(); 

      conn.getInputStream(); 

     } 

     catch (Exception e) { 

      e.printStackTrace(); 

     } 

     finally { 
      try { 
       os.close(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      conn.disconnect(); 

     } 

    } 

} 

我擔心的是,如果服務只啓動並運行,我想發送請求到它或否。

請告訴我,如果可以檢查嗎?

在此先感謝。

回答

0

您可以嘗試建立到主機的套接字連接。如果套接字運行良好,則您的請求應該可以工作。

只是一個非常簡單的例子:

Socket client; 

try{ 
    client = new Socket("localhost", 8080); 
    // Do your stuff 
} catch(Exception e) { 
    System.out.println("Error"); 
} 

文檔:https://developer.android.com/reference/java/net/Socket.html

有很多的插座例子,我希望這種方法能幫助你解決問題。

+0

感謝Boehrsi,服務器可能正在運行,但在某些情況下Web服務可能會關閉 – Pawan

+0

該死的確實,但是如果您查詢服務器,您希望以特定形式回覆服務器時會出現一個問題。如果這失敗了,你有你的答案或我完全錯了;)。 – Boehrsi

+0

同意了,這段代碼出現在一個自定義日誌appender中,它以異步方式將消息記錄到webservice,所以如果服務關閉,我不想將消息記錄到服務器。 – Pawan