HTTP 통신 개요
HTTP 커뮤니케이션에는 게시하고 얻는 두 가지 방법이 있습니다. 전자는 HTTP 메시지 엔티티를 통해 서버로 데이터를 보냅니다. 이는 매우 안전하며 데이터 전송 크기에 제한이 없습니다. 텍스트는 기밀이 좋지 않으며 최대 2048 자까지 전달할 수 있습니다 그러나 GET 요청은 준비되지 않은 것이 아닙니다. GET 요청은 주로 쿼리 (읽기 리소스)에 사용되며 이는 효율적입니다. 게시물 요청은 등록 및 로그인 및 데이터베이스에 데이터 작성과 같은 높은 보안 작업에 사용됩니다.
Post and Get 외에도 HTTP와 의사 소통하는 다른 방법이 있습니다! HTTP 요청 방법을 참조하십시오
코딩 전 준비
인코딩이 수행되기 전에 먼저 클라이언트 매개 변수 (이름 및 연령)를 수신하고 클라이언트에 응답하는 서블릿을 만듭니다.
@webservlet (urlpatterns = { "/demo.do"}) public class demoservlet는 httpservlet {prive public void do getpservletrequest 요청, httpservletrexception, ioexception (uxception) { " "); get에 의한 서비스. servicetexception, ioexception f-8 "); response.setContentType ("text/html; charset = utf-8 "); String name = request. getParameter ("name "); String age = request.getParameter ("age "). printwriter pw = pw.print; ;}}
JDK를 사용하여 HTTP 통신을 구현하십시오
URLConnection을 사용하여 GET 요청을 구현하십시오
java.net.url 객체를 검사하십시오.
URL 객체의 OpenConnection () 메소드를 통해 java.net.urlconnection을 가져옵니다.
URLConnection 객체의 getInputStream () 메소드를 통해 입력 스트림을 얻습니다.
입력 스트림을 읽으십시오.
가까운 자원.
public void get ()는 {url url = new URL ( "http://127.0.0.1/http/demo.name=jack&age=10"; 새 bufferedReader (urlConnection.getInputStream (), "UTF-8"); )) {sb.append (line + "/n");} system.out.println (sb.tostring ());}
httpurlconnection을 사용하여 사후 요청을 구현하십시오
java.net.httpurlconnection은 java.net.url의 서브 클래스로 http (getxxx 및 setxxx methods)에서 더 많은 작업을 제공합니다. 이 클래스는 일련의 HTTP 상태 코드를 정의합니다.
public void post ()는 ioexception {url url = "http : //127.0.0.1/http/demo.do"); setDooutput (true); // httpurlconnection을 출력 할 수있는 연결 (httpurlConnection.getOutputStream ())); Plush (); ) {// 데이터 읽기 SB.Append (line + "/n");} system.out.println (sb.toString ());}
HTTP 커뮤니케이션에 HTTPCLIENT를 사용하십시오
HTTPCLIENT는 JDK에서 HTTP 통신의 구현을 크게 단순화합니다.
Maven 의존성 :
<pectionency> <groupid> org.apache.httpcomponents </groupid> <artifactid> httpclient </artifactid> <버전> 4.3.6 </version> </fectionency>
요청 받으십시오
public void httpclientget ()는 예외를 던집니다. {// httpclient 객체 생성 httpclient client.createdefault (); 40 "); // httpclient 객체의 실행 메소드를 호출하여 응답을 얻으려면 httpresponse response = client.execute (get); // httpresponse 호출 se 객체의 getentity 메소드 httpentity httpentity = response.getentity를 얻습니다. ); // entityutils 도구 클래스를 사용하여 응답 문자열 result = entityutils.toString (httpentity, "utf-8");
사후 요청
public void httppclientpost ()는 예외를 던집니다 {// httpclient 객체 생성 httpclient client.createdefault (); ; // 기본 키 값 쌍을 저장하기위한 목록 컨테이너를 만듭니다 san ")); parameters.add (new BasicNamevaluePair ("age ","25 ")); // 메시지 엔티티 게시물 추가 (새로운 urlencodedDormentity (매개 변수,"utf-8 ")); // 응답 받기 문자열로 변환 httpresponse response = httpentity httpentity = respone rest = entityutil.tost raing (httpetity, "utf-8"); ;}
httpclient는 HTTP 프로토콜을 지원하는 효율적이고 최신 기능이 풍부한 클라이언트 프로그래밍 툴킷을 제공하기 위해 Apache Jakarta Common의 하위 프로젝트이며 HTTP 프로토콜의 최신 버전 및 제안을 지원합니다. httpclient는 Apache Jakarta Cactus의 잘 알려진 두 개의 다른 오픈 소스 프로젝트와 Htmlunit과 같은 많은 프로젝트에 적용되었습니다.