티스토리 뷰
[안드로이드] HttpClient 사용하기
1) 안드로이드 앱으로 인터넷 접속을 허용한다.
- 아래의 태그를
2) Get을 하는 방법
3) Post를 하는 방법
4) 위의 소스코드는 AsyncTask에서 실행한다.
* main thread에서 실행하면 android.os.NetworkOnMainThreadException
- 위의 클래스를 실행하는 방법은
- AsyncTask의 템플릿은 입맛에 따라 바꿔서 사용하면 된다.
끝.
1) 안드로이드 앱으로 인터넷 접속을 허용한다.
- 아래의 태그를
<uses-permission android:name="android:name="android.permission.INTERNET" />
2) Get을 하는 방법
public InputStream getInputStreamFromUrl(String url) {
InputStream content = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(url));
content = response.getEntity().getContent();
} catch (Exception e) {
Log.("[GET REQUEST]", "Network exception", e);
}
return content;
}
InputStream content = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(url));
content = response.getEntity().getContent();
} catch (Exception e) {
Log.("[GET REQUEST]", "Network exception", e);
}
return content;
}
3) Post를 하는 방법
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("id", "12345"));
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
4) 위의 소스코드는 AsyncTask에서 실행한다.
* main thread에서 실행하면 android.os.NetworkOnMainThreadException
class HttpTask extends AsyncTask<String , Void , String> {
protected String doInBackground(String... params)
{
InputStream is = getInputStreamFromUrl(params[0]);
String result = convertInputStreamToString(is);//이 함수는 이 페이지를 참고
return result;
}
protected void onPostExecute(String result)
{
//result를 처리한다.
}
}
protected String doInBackground(String... params)
{
InputStream is = getInputStreamFromUrl(params[0]);
String result = convertInputStreamToString(is);//이 함수는 이 페이지를 참고
return result;
}
protected void onPostExecute(String result)
{
//result를 처리한다.
}
}
- 위의 클래스를 실행하는 방법은
new HttpTask().execute("http://접근하고자하는URL");
- AsyncTask의 템플릿은 입맛에 따라 바꿔서 사용하면 된다.
끝.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 팁
- TIP
- 삼식이
- 안드로이드 앱 개발 기초
- java
- Python
- Javascript
- 사진
- 서울
- php
- mini project
- c++
- Android
- 속깊은 자바스크립트 강좌
- ny-school
- lecture
- HTML5
- 탐론 17-50
- gae
- HTML5 튜토리얼
- 샷
- 안드로이드
- 자바스크립트
- google app engine
- GX-10
- 뽐뿌
- gre
- Writing
- 강좌
- K100D
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함