컴퓨터공부/Android 32

REST API 사용하기(2) - POST

이전 예제 에서는 Restful API 중 get만 표현되어 있었다.Post를 어떻게 하는지 궁금해서 찾아 봤더니, HttpURLConnection은 기본으로 GET 을 쓰기 때문에, Post를 쓰려면 SetRequestMethod() 를 써주면 된다고 한다. URL httpbinEndpoint = new URL("https://httpbin.org/post");HttpsURLConnection myConnection = (HttpsURLConnection) httpbinEndpoint.openConnection(); myConnection.setRequestMethod("POST"); // Create the dataString myData = "message=Hello"; // Enable writi..

안드로이드 에뮬레이터에서 INSTALL_FAILED_NO_MATCHING_ABIS 를 내 뱉을 때..

원인은 x86에뮬레이터를 켜고 arm용 apk를 설치 하려고 해서 나오는 에러이다.(그 반대 일 수도 있고,,) 처음에는 에뮬레이터를 arm용으로 실행하려고 했으나, 겁나 느려서 포기...두번째로는 apk파일을 x86으로 만들려고 했으나 어디서 바꾸는지 몰라서 포기..-_-;마지막으로 아래와 같이 build.gradle의 android 항목에 아래 붉은 색 추가 해서 성공 android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.appname" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { re..

OAuth로 access_token 받는 순서도

아래 표가 OAuth를 통하여 access_token을 받을 수 있는,가장 간단히 표현하면서 이해하기 쉽게 그려진 순서도 인것 같다. 링크의 내용을 공부하면 최고로 좋을 것 같다. 저자도 한번에 이해가 잘 안될거라고 말한다..물론 나도 그랬다... 출처 : https://opentutorials.org/course/2473/16571 출처 : https://opentutorials.org/course/2473/16571 http://ohgyun.com/470

Retrofit으로 REST API 사용하기

지난 글은 라이브러리 사용하지 않고, REST API를 사용하는 것을 해보았다면, 이제는 Retrofit이라는 라이브러리를 통해서 REST API를 사용하는 것을 해보겠다. 목표 : Retrofit으로 REST API를 사용해보자. 작업 순서1. 받을 response를 바탕으로 Contributor을 먼저 만들고2. Retrofit을 통해서 통신할 interface 모듈을 만들고3. Retrofit 인스턴스를 생성해서 사용한다. 별도 HTTP를 통신을 할 필요 없고, 파싱도 알아서 해준다. 거기다 속도도 더 빠르다. 짱임... public class Contributor { private String login; public String getLogin() { return login; } public v..

REST API 사용하기 - GET

요즘에 REST API 소스를 직접 짜는 사람은 적을 것이라고 예상한다. (레트로핏 같은 걸 쓰겠지...?)그래도 의미가 있지 않을까 해서 정리 해본다. https://api.github.com 로 접속해서 그 중에 "current_user_url" 항목을 화면에 띄우는 예제이다. /* * 목표 * 1. AsyncTask와 http url connection을 이용한 http 호출 만들기 * 2. 리턴된 json을 파싱하는 방법을 통하여 JSON 객체 다루는 법 습득하기 * 3. json 객체에서 원하는 데이터 빼내서 화면에 출력하기 * * 작업 순서 * 1. 받을 response를 바탕으로 HubObject를 먼저 만들고 * 2. 통신할 모듈과 파싱할 모듈을 APIClient로 만들고 * 3. APIC..

CustomDialogOnAttach Fragment 예제

CustomDialog Fragment 예제의 연장선이다.그 전 예제는 그저 dialog만 띄우고 끝이 났다. 이제는 dialog를 띄우고 '확인', '취소' 중에 어떤 것을 선택했는지 확인하는 예제이다.(https://developer.android.com/guide/topics/ui/dialogs.html?hl=ko#PassingEvents 중 "이벤트를 대화상자의 호스트에 다시 전달" 참조) ServerTestDialogFragment.java public class ServerTestDialogFragment extends DialogFragment { public interface DialogListener{ public void onDialogPositiveClick(DialogFragment..

CustomDialog Fragment 예제

DialogFragment 를 이용해서 팝업이 뜨는 것을 구현해 봤다..아래 구문은 다음에 쓰일 수도 있을 것 같아서 표시해둔다. * DialogFragment를 호출하는 것이 Fragment일 때, support 버전을 맞춰줘야지 컴파일 문제가 없어진다. 즉, android.support.v7.app의 Fragment는 android.support.v7.app.DialogFragment의 DialogFragment를 호출해야 하고, android.support.v4.app의 Fragment는 android.support.v4.app.DialogFragment의 DialogFragment를 호출해야 함Fragment prev = fm.findFragmentByTag(DIALOG_TAG); package ..

파일 upload 같은 걸 할 때 주의할 것.

현상 : 파일 업로드 할 때, 보통 Thread를 사용한다. 근데 보통 파일을 여러개 보내기 때문에 thread 함수를 for문으로 감싸는 경우가 쉽게 생긴다.문제 : 이러면 for문 만큼 thread가 생기게 되기에 정상 동작을 안하거나 리소스가 부족할 수 있다.해결 : 파일을 하나씩 올릴 때 마다 다음 for문을 돌릴 수 있도록 수정해야 한다.

Activity 간 데이터 주고 받기

startActivityForResult(Intent i, int requestCode) 와 onActivityResult(int requestCode, int resultCode, Intent data)가 쌍으로 이루어져 Activity간 데이터를 주고 받을 수 있다. getIntent() 함수는 현재 Intent를 호출한 Intent를 반환한다.(Return the intent that started this activity.) 즉, 아래 예제에서 Activity B에서 getIntent()를 실행하면 Activity A의 Intent i 가 리턴 되는 것이다. + Activity A @Override public void onClick(View v) { // TODO Auto-generated me..