2011-11-20 54 views
1

簡單的問題,我如何獲得http://www.minecraft.net/haspaid.jsp?user=somethinghere的內容?我將在文本文件中列出用戶名列表,並且我想通讀所有這些用戶名並查看他們是否已付款。這個網頁的內容可能是真的,也可能是假的。沒有HTML,只有「真」或「假」。我如何獲得該內容?我不需要任何幻想。這是我第一次用Java處理基於Web的東西。如何在Java中獲取網頁的全部內容?

+1

-1?爲什麼?我是Java新手,在Google上找不到與此有關的任何內容。 – danielhep

+0

*「簡單的問題」*「生命的意義是什麼?」是一個簡單的問題 - 這是更難的答案。 (但是,不,我不是down-voter。) –

回答

2

你實際上是問如何使用Java API來執行HTTP GET。這是代碼片段。

URL url = new URL("http://www.minecraft.net/haspaid.jsp?user=somethinghere"); 
URLConnection conn = url.openConnection(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
String line = null; 
while ((line = reader.readLine()) != null) { 
    // parse your content here 
} 
1

HttpClient或spring RestTemplate可以完成這項工作。

類似的東西帶彈簧RestTemplate

public class Foo { 
    /** 
    * Production HTTP end point. 
    */ 
    private static final String BASE_URL = "http://www.minecraft.net/haspaid.jsp"; 

    /** 
    * {@link RestTemplate} for HTTP access. 
    */ 
    @Autowire 
    private RestTemplate restTemplate; 

    /** 
    * Constructor. 
    */ 
    public Foo() { 
     this.baseUrl = BASE_URL; 
    } 

    /** 
    * Constructor for testing purposes. 
    * 
    * @param baseUrl HTTP end-point url to use. 
    * @param restTemplate {@link RestTemplate} to use (a mock probably). 
    */ 
    protected Foo(final String baseUrl, final RestTemplate restTemplate) { 
     this.baseUrl = baseUrl; 
     this.restTemplate = restTemplate; 
    } 

    /** 
    * Check if user has paid. 
    * 
    * @param userName Name of the user to check. 
    * @return true if user has paid 
    */ 
    public boolean hasPaid(final String userName) { 
     if (userName == null) { 
      return false; 
     } 

     final String result = restTemplate.getForObject(this.baseUrl + 
      "?user={user}", String.class, userName); 

     return Boolean.valueOf(result); 
    } 
} 
+0

謝謝!我明天一定要看看那些人。我也會考慮一些例子。 – danielhep