2012-06-12 1 views
3

null 예외를 throw하는 HTTP 요청이 있습니다.android의 httprequest가 실패하고 예외가 null입니다.

여기 코드는 다음과 같습니다

public String updateRounds() { 
    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("https://technet.rapaport.com/HTTP/Prices/CSV2_Round.aspx"); 

    // Add your data 
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
    nameValuePairs.add(new BasicNameValuePair("Username", _user)); 
    nameValuePairs.add(new BasicNameValuePair("Password", _password)); 
    try { 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
    } catch (UnsupportedEncodingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
    String response = ""; 
    // Execute HTTP Post Request 
    try { 
     response = httpclient.execute(httppost, responseHandler); // it gets 
                    // exception 
                    // here 
    } catch (Exception e) { 
     e.getMessage(); // e is null 
    } 

    return response; 
} 

사람이 왜 이런 일이에 어떤 생각을 가지고?

+0

응용 프로그램에 UsesInternet 권한이 있습니까? 또한 httpclient가 제네릭 유형 –

답변

5

도움을 주셔서 감사합니다. 내가

e.printStackTrace(); 

e.getMessage(); 

을 변경했습니다 그리고 난 예외가 SSL 인증서에 대한 것을 보았다. 그래서 나는 그것을 처리하고 지금은 작동합니다. 감사합니다.

2

다음과 같은 문제가 있습니다.

String response = ""; 
    // Execute HTTP Post Request 
    try {   
     response = httpclient.execute(httppost, responseHandler); //it gets exception here 

responseHandler 란 무엇입니까?

httpclient.executeHttpResponse을 반환하고 response (String)으로 반환하려고합니다.

그래서 변경

String response 

당신이 정말로 후 다음 코드를 추가 문자열을 반환하려면

HttpResponse response 

합니다.

bufferedReader = new BufferedReader(
       new InputStreamReader(response.getEntity().getContent())); 
     StringBuffer stringBuffer = new StringBuffer(""); 
     String line = ""; 
     String LineSeparator = System.getProperty("line.separator"); 
     while ((line = bufferedReader.readLine()) != null) { 
     stringBuffer.append(line + LineSeparator); 
     } 

     bufferedReader.close(); 
     return stringBuffer.toString(); 
+0

대신에 던질 수있는 다른 유형의 예외를 잡으려고 시도합니다. 저는 이것이 정확하지 않다고 생각합니다. httpclient는 문자열을 리턴합니다. – orelzion

+0

BasicResponseHandler는 응답을 처리하며 이는 문자열을 반환합니다. 그래서 그 비트는 틀리지 않습니다. –

+0

여기에 붙여 넣은 코드는 제 끝 부분에서 작동합니다. 그래서 당신을 돕는 것을 생각했습니다. 감사합니다. :) –