2월, 2016의 게시물 표시

[JAVA8] HashMap에 getOrDefault 와 putIfAbsent 의 차이

getOrDefault : key 값이 없다면 입력시 설정한 default 값을 반환 putIfAbsent : key 값이 없다면 입력 된 key와 value 를 입력, 해당 key가 존재하면 입력 되었던 값 반환 HashMap hm = new HashMap<>(); // 1. 비어있는 HashMap에서 get 호출 System.out.println("key가 없을 때 : " + hm.get("key")); // 결과 : key가 없을 때 : null // 2. 비어있는 HashMap에서 getOrDefault 호출 System.out.println("getOrDefault() : " + hm.getOrDefault("key", "car")); // 결과 : getOrDefault : car // 3. key, value 입력 System.out.println("putIfAbsent() : " + hm.putIfAbsent("key", "ship")); // 결과 : putIfAbsent : null // 이전값이 존재하지 않기 때문에 null 반환 // 4. putIfAbsent으로 key, value 입력 후 동일한 key 값 재호출 System.out.println("putIfAbsent() : " + hm.putIfAbsent("key", "bike")); // 결과 : putIfAbsent : ship System.out.println("values in map : "+hm.toString()); // 결과 : {key=ship} // getOrDefault은 해당 key가 없을 경우 값을 set은 하지 않고 정해진 default 값만 리턴 하기 떄문에 car 없음 // putIfAb

[HTTPS] Hostname in cerificate didn't match?

특정 업체의 API를 호출하던 중 아래와 같은 에러가 발생 Hostname in certificate didn't match? SSLPeerUnverifiedException   위의 에러발생 이유는 해당 업체의 인증서가 나에게 등록 되어있지 않기 때문이다. 해당 업체의 인증서를 등록하여 해결하는 방법도 있지만, 나는 데이터가 원하는데로 전달되는지만 확인하면 되었기에 인증서를 무시하고 요청하는 방식을 사용하였다. pom.xml 에 httpclient 추가 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId> httpclient </artifactId> <version>4.5.1</version> <type>jar</type> <scope>compile</scope> </dependency> 인증서 무시를 위해 사용한 코드 @Test public void shouldAcceptUnsafeCerts() throws Exception{ HttpClient httpclient = httpClientTrustingAllSSLCerts(); final String uri = "YOUR URI"; HttpGet httpGet = new HttpGet(uri); HttpResponse response = httpclient.execute(httpGet); System.out.println(EntityUtils.toString(response.getEntity())); } private HttpClient httpClientTrustingAllSSLCerts() throws HttpClientBuilder builder = HttpClie