2016-07-17 4 views
2

HttpUrlConnection을 사용하여 클래스를 구현하여 Google 지오 코딩 API에서 일부 데이터를 가져 왔습니다. 안드로이드에서이 코드를 사용하면 제대로 작동합니다. 그러나 다른 "일반적인"자바 프로그램에서이 코드를 사용하자마자 상태 코드 400 (BadRequest) 가끔 있습니다. 내가 신뢰할 수있는 인터넷 연결도 나는 내 웹 브라우저에서 그것을 시도 할 때마다, 데이터 작품을 받기 위해 사용하고있는 URL을HttpUrlConnection BadRequest - Statuscode 400

HttpURLConnection c = null; 
    StringBuilder sb = new StringBuilder(); 
    try { 
     URL u = new URL(url); 
     c = (HttpURLConnection) u.openConnection(); 
     c.setRequestMethod("GET"); 
     c.setRequestProperty("Content-length", "0"); 
     c.setUseCaches(false); 
     c.setAllowUserInteraction(false); 
     c.setConnectTimeout(timeout); 
     c.setReadTimeout(timeout); 
     c.connect(); 
     int status = c.getResponseCode(); 

     switch (status) { 
      case HttpURLConnection.HTTP_OK: 
      case HttpURLConnection.HTTP_CREATED: 
       BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream())); 
       String line; 
       while ((line = br.readLine()) != null) { 
        sb.append(line + "\n"); 
       } 
       br.close(); 
     } 
    } catch (SocketTimeoutException ex){ 
     // Handle ... 
    } catch (MalformedURLException ex) { 
     // Handle ... 
    } catch (IOException ex) { 
     // Handle ... 
    } finally { 
     if (c != null) { 
      try { 
       c.disconnect(); 
      } catch (Exception ex) { 

      } 
     } 
    } 

: 여기 내 코드입니다. 미리 감사드립니다.

+2

그것은 완전한 예를 더하지 않고 잘못 알고 조금 힘든,하지만 당신은 콘텐츠 길이를 설정하는 이유는 바로 내가 질문 클라이언트 요청 어떤 데이터의 생산자가 그것을 설정할 것입니다. 그러나 실제로는 아무 것도 아프지 않을 수 있습니다. 당신이 치고있는 URL을 공유 할 수 있습니까? – stdunbar

+0

감사합니다. 콘텐츠 길이를 삭제해도 불행하게도 변경되지 않았습니다. 내가 사용하고있는 URL은 아주 간단합니다. 이 구글 맵핑 API는'https : //maps.googleapis.com/maps/api/geocode/json? address = 95685 + Falkenberg'와 같은 API이며, 물론이 URL 뒤에 내 API 키를 설정하고 있습니다. –

답변

1

잘못된 요청은 종종 부적절한 URL로 인해 발생합니다. 언급 한대로 모든 URL에이 오류가 표시되는 것은 아니며 해당 URL의보기 만 제공됩니다. 그래서 그것은 그것과 관련이 있어야합니다. 당신이 사용하는 URL의 올바른 인코딩을 보장하기 위해 다음 코드를보십시오 :

String url = ...; // your url 
url = URLEncoder.encode(url,"UTF-8"); 
// Use 'url' ... 
관련 문제