2011-03-15 2 views
1

사용 방법 :나는 현재 자바에서 다음 코드를 사용하여 'URI'를 통해 일부 데이터를 얻으려고 HttpClient를

HttpClient client = new DefaultHttpClient(); 
     HttpGet get = new HttpGet(uri); 
     HttpResponse response = client.execute(get); 
     HttpEntity entity = response.getEntity(); 
     if(entity != null){ 
      InputStream stream = entity.getContent(); 
      callString = stream.toString(); 
      return callString; 
     } 

그러나이 작동하지 않습니다. 아무도 내가 여기서 뭘 잘못하고 있는지 알아?

+0

URI 문자열을주세요 ... – Nix

+0

"이 기능이 작동하지 않습니다"는 특히 유용한 정보가 아닙니다. 대신 무엇이 발생합니까? 어떻게되지 않을까요? 예외가 있습니까? 공유하십시오. – BalusC

+0

이것은 현재 try catch 블록에 있고 catch는 해고되었습니다. URI는 http://ichart.finance.yahoo.com/table.csv?s=MSFT – locoboy

답변

0

그것의 총 추측하지만, 그것은 안 : 사용자가 지정한 유형의 오브젝트를 얻을

String uri = "ichart.finance.yahoo.com/table.csv?s=MSFT" 

HttpData data = HttpRequest.get(uri); 
System.out.println(data.content); 
0

당신은 파일을 다운로드하려고하고 getEntity이 사용됩니다. IMHO이 일은 실 거예요. 당신은 실제로 응답 스트림을 읽고 그것의 내용을 읽을 코드가 필요

...

당신이 뭘 하려는지?

+0

입니다.이 파일을 다운로드하고 구문 분석하여 MSFT의 주가를 배열로 가져 오려고합니다. – locoboy

1

당신은 그런 식으로 입력 스트림을 인쇄 할 수 없습니다 ... 대신 같은 것을 할 : -

HttpClient client = new DefaultHttpClient(); 
    HttpGet get = new HttpGet("http://ichart.finance.yahoo.com/table.csv?s=MSFT"); 
    HttpResponse response = client.execute(get); 
    HttpEntity entity = response.getEntity(); 
    if (entity != null) { 
     Scanner scanner = new Scanner(entity.getContent()); 
     while (scanner.hasNextLine()) { 
      System.out.println(scanner.nextLine()); 
     } 
    } 
이 인쇄물은 다음과 같습니다

: -

1994-02-02,84.75,85.50,84.00,84.00,40924800,2.09 
1994-02-01,85.00,85.75,84.50,85.12,44003200,2.12 
1994-01-31,85.25,85.87,84.75,85.12,62566400,2.12 
1994-01-28,84.50,85.50,84.25,84.87,41875200,2.11 
1994-01-27,84.00,84.75,83.25,84.25,51129600,2.10 
1994-01-26,85.00,85.00,84.00,84.25,50489600,2.10 
1994-01-25,85.25,85.37,84.00,85.12,70361600,2.12 
... 
+0

내 활동에서 어떤 이유로 작동하지 않습니다. 응답을 파싱 할 다른 방법이 있습니까? – locoboy

관련 문제