本文整理汇总了Java中org.apache.avro.ipc.AsyncHttpTransceiver类的典型用法代码示例。如果您正苦于以下问题:Java AsyncHttpTransceiver类的具体用法?Java AsyncHttpTransceiver怎么用?Java AsyncHttpTransceiver使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
AsyncHttpTransceiver类属于org.apache.avro.ipc包,在下文中一共展示了AsyncHttpTransceiver类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: post
import org.apache.avro.ipc.AsyncHttpTransceiver; //导入依赖的package包/类
@BodyParser.Of(BodyParser.Raw.class)
public static Promise<Result> post(String protocol) throws Throwable {
String contentTypeHeader = request().getHeader("content-type");
ContentType contentType = ContentType.parse(contentTypeHeader);
if (!CONTENT_TYPE.equals(contentType.getMimeType())) {
throw new RuntimeException("Unable to handle content-type " + contentType + "; "
+ CONTENT_TYPE + " is expected");
}
AvroPlugin plugin = AvroPlugin.getInstance();
Class<?> protocolClass = Play.application().classloader().loadClass(protocol);
Object implementation = plugin.getProtocolImplementations().get(protocolClass);
byte[] bytes = request().body().asRaw().asBytes();
List<ByteBuffer> buffers = AsyncHttpTransceiver.readBuffers(new ByteArrayInputStream(bytes));
AsyncResponder responder = new AsyncResponder(protocolClass, implementation);
Promise<List<ByteBuffer>> response = responder.asyncRespond(buffers);
return response.map(result -> {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
try {
AsyncHttpTransceiver.writeBuffers(result, outStream);
} finally {
outStream.close();
}
return Results.ok(outStream.toByteArray());
});
}
示例2: client
import org.apache.avro.ipc.AsyncHttpTransceiver; //导入依赖的package包/类
public static <T> T client(Class<T> interfaceClass, URL url,
RequestPreparer... postRequestPreparers) {
return client(interfaceClass, new AsyncHttpTransceiver(url), postRequestPreparers);
}