HttpClient 의 Get 과 Post
4515 단어 httpclientandroidpostget
일반적인 상황 에서 웹 사이트 의 간단 한 페이지 가 요청 을 제출 하고 서버 응답 을 받 아야 한다 면 HttpURLConnection 은 충분히 감당 할 수 있 습 니 다.그러나 대부분의 경우 웹 사이트 의 웹 페이지 는 이렇게 간단 하지 않 을 수 있 습 니 다. 이 페이지 들 은 간단 한 URL 로 접근 할 수 있 는 것 이 아니 라 사용자 가 로그 인하 고 해당 하 는 권한 을 가 져 야 이 페이지 를 방문 할 수 있 습 니 다.이 경우 세 션, 쿠키 처리 가 필요 하 다. HttpURLConnection 을 사용 해 이런 디 테 일 을 처리 하려 면 물론 실현 가능 하 며 처리 만 어렵 다 는 것 이다.
웹 사이트 에 대한 요청 을 잘 처리 하기 위해 서 는 Session, Cookie 등 세부 적 인 문 제 를 처리 하 는 것 을 포함 하여 아파 치 오픈 소스 조직 은 HttpClient 프로젝트 를 제공 합 니 다. 간단 한 HTTP 클 라 이언 트 (브 라 우 저 가 아 닌) 로 HTTP 요청 을 보 내 고 HTTP 응답 을 받 을 수 있 습 니 다.그러나 서버 의 응답 을 캐 시 하지 않 고 HTML 페이지 에 삽 입 된 자바 script 코드 를 실행 할 수 없습니다.페이지 내용 을 분석 하고 처리 하지 않 습 니 다.
쉽게 말 하면 HttpClient 는 증강 판 HttpURLConnection 이 고 HttpURLConnection 이 할 수 있 는 일 HttpClient 는 모두 할 수 있 습 니 다.HttpURLConnection 이 제공 하지 않 은 일부 기능 은 HttpClient 도 제공 하지만 요청 을 어떻게 보 내 고 응답 을 받 으 며 HTTP 연결 을 관리 하 는 지 에 만 관심 이 있 습 니 다.
HttpClient 를 사용 하여 요청 을 보 내 고 응답 을 받 는 것 은 간단 합 니 다. 다음 몇 단계 만 있 으 면 됩 니 다.
그리고
Android 는 HttpClient 를 성공 적 으로 통합 하 였 습 니 다. 이 는 개발 자가 직접 Android 응용 프로그램 에서 Httpclient 를 사용 하여 요청 을 제출 하고 응답 을 받 을 수 있 음 을 의미 합 니 다.
예 를 들 어 안 드 로 이 드 애플 리 케 이 션 은 지정 한 페이지 에 요청 을 보 내야 하지만 이 페이지 는 간단 한 페이지 가 아 닙 니 다. 사용자 가 로그 인 했 고 로그 인 사용자 의 사용자 이름 이 유효 할 때 만 이 페이지 를 방문 할 수 있 습 니 다.보 호 된 페이지 에 HttpURLConnection 을 사용 하면 처리 해 야 할 세부 사항 이 너무 복잡 합 니 다.
사실 웹 애플 리 케 이 션 에서 보 호 된 페이지 를 방문 할 때 브 라 우 저 를 사용 하 는 것 은 매우 간단 합 니 다. 사용자 가 시스템 을 통 해 제공 하 는 로그 인 페이지 로그 인 시스템 을 통 해 브 라 우 저 는 서버 와 의 Sesion 을 유지 하고 사용자 가 로그 인 한 사용자 이름, 비밀번호 가 요구 에 부합 되면 보 호 된 자원 에 접근 할 수 있 습 니 다.
Android 응용 프로그램 에 서 는 HttpClient 를 사용 하여 시스템 에 로그 인 할 수 있 습 니 다. 프로그램 이 같은 HttpClient 를 사용 하여 요청 을 보 내 면 HttpClient 는 서버 와 의 Session 상 태 를 자동 으로 유지 합 니 다. 즉, 프로그램 이 처음으로 HttpClient 로그 인 시스템 을 사용 한 후 HttpClient 를 사용 하면 보호 페이지 에 접근 할 수 있 습 니 다.
다음은 HttpClient 의 Get 과 Post 코드 를 간단하게 보 여 줍 니 다.
Get
public String (String s1,String s2){
//1.
HttpClient client = new DefaultHttpClient();
//2.
String urlGet = "http://ip:port/webname/table?s1=" +URLEncoder.encode(s1)+ "&s2" +URLEncode.encode(s2);
HttpGet httpGet = new HttpGet(urlGet);
//3.
HttpResponse response = client.execute(httpGet);//
int code = response.getStatusLine().getStatusCode();//
if(code == 200){//
InputStream is = response.getEntity().getContent();
String s = StreamTools.readInputStream(is);
return s;
}else{
return null;
}
}
Post public String (String s1,String s2){
HttpClient client = new DefaultHttpClient();
String urlPost = "http://ip:port/webname/table";
HttpPost httpPost = new HttPost(urlPost);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("s1", s1));
params.add(new BasicNameValuePair("s2", s2));
request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse response = client.execute(httpPost);
int code = response.getStatusLine().getStatusCode();
if(code == 200){
InputStream is = response.getEntity().getContent();
String s = StreamTools.readInputStream(is);
return s;
}else{
return null;
}
}
다른 점,HttpClient 의 GetMethod 와 PostMethod 방법 은 기본적으로 버 리 고 사용 하지 않 습 니 다. HttpGet 과 HttpPost 로 대체 되 었 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HttpClient 'GET' - 각도 단순화이봐, 친구들. 오늘 저는 API를 호출하는 Angular의 방법을 분석하고 싶습니다. 각 CRUD 작업에 대한 기사를 작성할 예정이므로 눈을 떼지 말고 팔로우하십시오! 이것이 기본이며 Angular 웹 사이트에서 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.