Android Http 프로 토 콜 액세스 네트워크 인 스 턴 스(3 가지)

3539 단어 AndroidHttp
안 드 로 이 드 Http 프로 토 콜 이 네트워크 에 접근 하 는 것 에 대한 분석 이 있 었 는데,최근 에 돌 이 켜 볼 필요 가 있어 서 수필 에 도 올 렸 습 니 다.
Android 에서 http 연결 은 주로 네트워크 데 이 터 를 얻 기 위해 현재 알 고 있 는 세 가지 방법 이 있 습 니 다.
Httpconnection―본인 상용
  • OKHTTP―본 적 이 있다(의존 에서 가방 을 도입 해 야 한다)
  • HttpClient―한물 간 방법(버 림)HTTPCONNECTION
    네트워크 연결 은 시간 이 걸 려 서 UI 스 레 드 에서 작업 할 수 없 기 때문에 Handler 를 통 해 하위 스 레 드 에서 얻 은 데 이 터 를 가 져 옵 니 다.
    
    Handler mhandler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
          super.handleMessage(msg);
          //      
        }
      };
    
    UI 스 레 드 에서 Http 방법 류 를 어떻게 호출 하 는 지(오래 전에 다 듬 었 습 니 다):
    
    new JsonText(mhandler);
    돌아 오 는 유형 은 모두 String 입 니 다.여 기 는 한 종류 에 직접 쓰 면 편리 합 니 다.
    
    public class JsonTest {
      Handler handler;
      public JsonTest(Handler handler) {
        this.handler = handler;
        thread.start();
      }
    
      Thread thread=new Thread(new Runnable() {
        @Override
        public void run() {
          Message msg=new Message();
          try{
            InputStream in=null;
            HttpURLConnection connection=null;
            URL url=new URL("http://guolin.tech/api/china");
            connection=(HttpURLConnection)url.openConnection();
            connection.setRequestMethod("GET");//      ,     ,   GET
            connection.setConnectTimeout(5000);//        
            in=connection.getInputStream();
            msg.arg1=0x01;
            msg.obj=in.toString();
            handler.sendMessage(msg);
          }catch (Exception e){
            e.printStackTrace();
            msg.arg1=0x02;
            handler.sendMessage(msg);
          }finally {
            connection.disconnect();
          }
        }
      });
    }
    
    
    코드 가 복잡 하지 않 으 면 군말 하지 않 겠 습 니 다.다음 에 다른 몇 가 지 를 말씀 드 리 겠 습 니 다.
    thread:
    sleep()와 wait()는 어떤 차이 가 있 느 냐 는 질문 을 자주 듣는다.sleep()방법 은 thread 클래스 에서 나 오고 wait()는 object 클래스 에서 나 옵 니 다.그 다음으로 sleep()방법 을 호출 할 때 시스템 자원 을 양보 하지 않 고 wait()는 시스템 자원 의 다른 스 레 드 가 CPU 를 사용 할 수 있 도록 합 니 다.마지막 으로 sleep(milliseconds)는 수면 시간 을 지정 해 야 합 니 다.시간 이 되면 자동 으로 깨 어 납 니 다.
    http(하이퍼텍스트 전송 프로 토 콜),https(하이퍼텍스트 전송 프로 토 콜 보안 버 전)
    TCP/IP 와 UPD 에 대하 여:
    TCP/IP 는 UDP 보다 안정 적 이지 만 느 립 니 다.세 번 의 핸드 폰 시스템 이 있 기 때 문 입 니 다.
    세 번 의 악수 에 대하 여:
    인터넷 에 서 는 호스트 가 먼저 서버 에 물 어 보 는 것 이 라 고 설명 하 는 설명 이 많 습 니 다.제 가 데 이 터 를 보 내 도 되 겠 습 니까?서버 가 대답 합 니 다.됐 습 니 다.호스트 가 말 하고 있 습 니 다.그럼 보 내 겠 습 니 다.구체 적 인 내용 은 나중에 상세 하 게 이해 하고 먼저 그림 을 그린다.

    OKHTTP
    책 은 Httpconnection 대신 뛰어난 네트워크 통신 라 이브 러 리 를 사용 할 수 있다 고 설명 했다.잘 났 다 고 하면 쓸 게.
    의존 도 추가:
    
    dependencies {
    compile 'com.squareup.okhttp3:okhttp:3.4.1'
    }
    쓰다
    
    OkHttpClient client =new OkHttpClient();
    //    
    Request request =new Request.Builder().build();
    url()을 통 해 네트워크 에 접근:
    
    Request request =new Request.Builder().url("www.baidu.com").build();
    이후 newCall()방법 으로 call 대상 을 만 들 고 excute()방법 으로 요청 을 보 내 고 서버 데 이 터 를 가 져 옵 니 다.
    
    Response response=client.newCall(request).excute();
    String str=response..body().toString();//   
    상술 한 두 가지 방법 을 말 해 보 세 요.모두 get 만 말 했 고 post(데이터 제출)가 없 었 습 니 다.게 으 르 기 때 문 입 니 다.나중에 다시 이야기 하 겠 습 니 다.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기