ClientRequestFilter 의 필터 메서드는 나가는 요청 메시지 및 관련 메타데이터에 액세스하는 데 사용할 수 있는 javax.ws.rs.client.ClientRequestContext 의 단일 인수를 수신합니다. ClientRequestContext 인터페이스는 다음과 같이 정의됩니다.
// Java
...
package javax.ws.rs.client;
import java.io.OutputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.net.URI;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.Cookie;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.MessageBodyWriter;
public interface ClientRequestContext {
public Object getProperty(String name);
public Collection<String> getPropertyNames();
public void setProperty(String name, Object object);
public void removeProperty(String name);
public URI getUri();
public void setUri(URI uri);
public String getMethod();
public void setMethod(String method);
public MultivaluedMap<String, Object> getHeaders();
public abstract MultivaluedMap<String, String> getStringHeaders();
public String getHeaderString(String name);
public Date getDate();
public Locale getLanguage();
public MediaType getMediaType();
public List<MediaType> getAcceptableMediaTypes();
public List<Locale> getAcceptableLanguages();
public Map<String, Cookie> getCookies();
public boolean hasEntity();
public Object getEntity();
public Class<?> getEntityClass();
public Type getEntityType();
public void setEntity(final Object entity);
public void setEntity(
final Object entity,
final Annotation[] annotations,
final MediaType mediaType);
public Annotation[] getEntityAnnotations();
public OutputStream getEntityStream();
public void setEntityStream(OutputStream outputStream);
public Client getClient();
public Configuration getConfiguration();
public void abortWith(Response response);
}
// Java
...
package javax.ws.rs.client;
import java.io.OutputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.net.URI;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.ws.rs.core.Configuration;
import javax.ws.rs.core.Cookie;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.MessageBodyWriter;
public interface ClientRequestContext {
public Object getProperty(String name);
public Collection<String> getPropertyNames();
public void setProperty(String name, Object object);
public void removeProperty(String name);
public URI getUri();
public void setUri(URI uri);
public String getMethod();
public void setMethod(String method);
public MultivaluedMap<String, Object> getHeaders();
public abstract MultivaluedMap<String, String> getStringHeaders();
public String getHeaderString(String name);
public Date getDate();
public Locale getLanguage();
public MediaType getMediaType();
public List<MediaType> getAcceptableMediaTypes();
public List<Locale> getAcceptableLanguages();
public Map<String, Cookie> getCookies();
public boolean hasEntity();
public Object getEntity();
public Class<?> getEntityClass();
public Type getEntityType();
public void setEntity(final Object entity);
public void setEntity(
final Object entity,
final Annotation[] annotations,
final MediaType mediaType);
public Annotation[] getEntityAnnotations();
public OutputStream getEntityStream();
public void setEntityStream(OutputStream outputStream);
public Client getClient();
public Configuration getConfiguration();
public void abortWith(Response response);
}
Copy to ClipboardCopied!Toggle word wrapToggle overflow
JAX-RS 2.0 클라이언트 API를 사용하여 javax.ws.rs.client.Client 오브젝트 또는 javax.ws.client. WebTarget 오브젝트에 클라이언트 요청 필터를 직접 등록할 수 있습니다. 효과적으로는 클라이언트 요청 필터를 선택적으로 다른 범위에 적용할 수 있으므로 필터의 특정 URI 경로만 영향을 받습니다.
예를 들어 다음 코드는 SampleClientRequestFilter 필터를 등록하여 클라이언트 오브젝트를 사용하여 수행된 모든 호출에 적용되는 방법 및 TestAbortClientRequestFilter 필터를 등록하는 방법을 보여주므로 rest/TestAbortClientRequest RequestRequestRequestRequest의 하위 경로만 적용합니다.