2013-03-20 4 views
0

작은 텍스트가 양수, 음수 또는 중립인지 확인하기 위해 Sentiment-140에서 제공하는 공용 API를 사용하고 있습니다. 비록 내가 그들의 간단한 HTTP-JSON 서비스를 성공적으로 사용할 수는 있지만, 나는 CURL로 실패하고있다. 여기 내 코드 :자바에서 CURL 응답 수신

public static void makeCURL(String jsonData) throws MalformedURLException, ProtocolException, IOException { 
    byte[] queryData = jsonData.getBytes("UTF-8"); 

    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.1.1.1", 8080)); 
    HttpURLConnection con = (HttpURLConnection) new URL("http://www.sentiment140.com/api/bulkClassifyJson").openConnection(proxy); 
    con.setRequestMethod("POST"); 
    con.setDoOutput(true); 

    OutputStream os = con.getOutputStream(); 
    InputStream instr = con.getInputStream(); 
    BufferedReader br = new BufferedReader(new InputStreamReader(instr)); 

    os.write(queryData); 
    os.close(); 
    String lin; 
    while((lin = br.readLine())!=null){ 
     System.out.println("[Debug]"+lin); // I expect some response here But it's not showing anything    
    } 
} 

내가 뭘 잘못하고 있니?

+3

프록시에 인증이 필요합니까? 어떤 예외? stacktrace? –

+0

인증이 없습니다. 나는 정상적인 HTTP 응답을 얻기 위해 성공적으로 비슷한 기술을 사용할 수있다. – Aditya

+0

다음 행을 이동 해보자. InputStream instr = con.getInputStream(); BufferedReader br = 새 BufferedReader (새 InputStreamReader (instr)); os.write() 및 os.close() 후에. – Kylar

답변

0

입력 스트림을 연결하기 전에 모든 요청 데이터를 보내야합니다.

byte[] queryData = jsonData.getBytes("UTF-8"); 
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("10.1.1.1", 8080)); 
HttpURLConnection con = (HttpURLConnection) new URL("http://www.sentiment140.com/api/bulkClassifyJson").openConnection(proxy); 
con.setRequestMethod("POST"); 
con.setDoOutput(true); 
OutputStream os = con.getOutputStream(); 
os.write(queryData); 
os.close(); 

InputStream instr = con.getInputStream(); 
BufferedReader br = new BufferedReader(new InputStreamReader(instr)); 
String lin; 
while((lin = br.readLine())!=null){ 
    System.out.println("[Debug]"+lin); 
}