嗨,有人能看看吗:
当我尝试使用VERTX HTTP客户端获取数据时,它在最后一行中给了我空指针异常,并且当我使用java HTTP客户端时,相同的URL提供了数据:
HttpClientOptions options = new HttpClientOptions().setKeepAlive(false);
options.setLogActivity(true);
options.setDefaultHost("http://delvmpllbbab10");
options.setDefaultPort(7003);
HttpClient client = vertx.createHttpClient(options);
HttpClientResponse[] clientResponse = {null};
client.request(HttpMethod.GET, "/rcsservices/homePage", response -> {
System.out.println("Received response with status code " + response.statusCode());
clientResponse[0] = response;
}).putHeader("content-type", "application/json").end(clientResponse[0].toString());
是这个代码我有一些问题...
我在开始使用Vert-X framework时遇到了同样的问题,我可以从您的代码中注意到以下改进:
. end()
包含新的“客户端请求正文”,但当您进行GET时,正文必须为空HttpHeaders
和MediaType
(我个人使用来自JAX-RS的MediaType
)而不是编写自己的字符串。System.out.println(...)
以下代码显示了如何将响应返回给原始调用方:
public void callWebService(@Context HttpServerRequest request, @Suspended final AsyncResponse asyncResponse) {
HttpClientOptions options = new HttpClientOptions().setKeepAlive(false);
options.setLogActivity(true);
options.setDefaultHost("http://delvmpllbbab10");
options.setDefaultPort(7003);
HttpClient client = vertx.createHttpClient(options);
client.request(HttpMethod.GET, "/rcsservices/homePage", response -> {
System.out.println("Received response with status code " + response.statusCode());
int code = response.statusCode();
if (code == 200) {
response.bodyHandler(bufferResponse -> {
// Adapt according your response type, could be String as well
JsonObject httpResult = bufferResponse.toJsonObject();
System.out.println("Received HTTP response with body " + httpResult);
asyncResponse.resume(Response.ok(httpResult).build());
});
} else {
response.bodyHandler(bufferResponse -> {
// Return null in a JSON Object in case of error
String httpResult = "{null}";
asyncResponse.resume(Response.status(code).entity(httpResult).build());
});
}
}).putHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).end();
做同样的事情有很多方法,你可以查看官方手册页面。
这是正确的,您将得到一个NPE,因此在您的代码中,您使用{null}
初始化clientResponse
变量。如果您现在了解代码的执行方式,您将看到原因:
现在您看到,clientResponse[0]仍然为null(这是您初始化它的值。因此,您正在调用:
null.toString()
这是无效的,并且将始终引发空指针异常。
所以我只想使用谷歌云视觉应用编程接口从图像中检测文本或标签。但是当我运行这段代码时,我总是得到: 但我不知道为什么。。。下面是我得到的完整json输出: 我的测试代码如下: 所以问题是。。此代码有什么问题?
我有一个主类,在那里初始化实例。然后,在getter的帮助下,我想从另一个类获取相同的实例,然而,它抛出了一个空指针异常。 其他类:
我正在使用Firebase云功能与Express和Firebase托管来为我的多页面站点服务。我已经成功地实现了服务器端cookie,如下文所述: 我正在使用Firebase Web SDK(JavaScript)访问Firebase Cloud Firestore。为此,我需要在客户端为当前登录的用户获取idToken,如下所示: 这对我来说似乎是多余的,因为我已经知道哪个用户是通过我的服务器c
CalledProcessError:Command'['java','-Dfile.encoding=UTF8','-jar',C:\Users\vijv2c13136\AppData\Local\Continuum\anaconda2\lib\site packages\tabla\tabla-1.0.2-jar-with-dependencies.jar','-pages',all','-g
Pease帮帮我!,我是新来的flutter我正在导入一个项目,当我试图运行它时,它给出了异常 /simple_permissions-0.1.9/android/src/main/java/com/ethras/simplepermissions/simplepermissionsplugin.java:9:错误:找不到符号导入Android.support.v4.app.activitycom
WebDriverException在处理命令时发生未知的服务器端错误。(警告:服务器未提供任何stacktrace信息) 在sun.reflect.nativeconstructoraccessorimpl.newinstance0(本机方法)在sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoracces