我已经设置了OKHTTP3 POST。当我得到响应时,我一直试图将主体放入一个字符串(这是一个字符串响应),但有些事情变得很糟糕:
[main] INFO org.apache.camel.impl.DefaultCamelContext - Apache Camel 2.16.3 (CamelContext: camel-1) is starting
[main] INFO org.apache.camel.management.ManagedManagementStrategy - JMX is enabled
[main] INFO org.apache.camel.impl.converter.DefaultTypeConverter - Loaded 198 type converters
[main] INFO org.apache.camel.impl.DefaultRuntimeEndpointRegistry - Runtime endpoint registry is in extended mode gathering usage statistics of all incoming and outgoing endpoints (cache limit: 1000)
Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch/action/support/replication/ReplicationType
at org.apache.camel.component.elasticsearch.ElasticsearchConstants. <clinit>(ElasticsearchConstants.java:46)
at org.apache.camel.component.elasticsearch.ElasticsearchConfiguration.<init> (ElasticsearchConfiguration.java:43)
at org.apache.camel.component.elasticsearch.ElasticsearchComponent.createEndp oint(ElasticsearchComponent.java:43)
at org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.jav a:114)
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext. java:567)
at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContext Helper.java:79)
at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.jav a:211)
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteCont ext.java:107)
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteCont ext.java:113)
at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:62)
at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:56)
at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:535)
at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:496)
at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:220)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1069)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196)
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:944)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3260)
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:2983)
at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:175)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2814)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2810)
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2833)
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java :2810)
at rg.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2779)
at com.nsm.sam.cep.CEPBroker.main(CEPBroker.java:43)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.action.support.replication.ReplicationType
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 27 more
我得到一个日志说“有响应”但是(长度为80)然后它就停止了。它并没有说我的rep字符串是null,或者是空的...它只是从不调用第二个Log。
任何人都有任何想法是什么?
答案 0 :(得分:0)
尝试使用此..
OkHttpClient client = new OkHttpClient.Builder().build();
Request request = new Request.Builder()
.url("")
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
try {
Log.d("Response",response.body().string());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
response.body().close();
}
}
});
答案 1 :(得分:0)
正确......显然我只需要将获取字符串的部分放在AsyncTask中,它就开始工作了。
没有任何错误消息或任何指示这样做的内容,但我回过头来实际查看了Callback的文档,并提到在另一个帖子上使用正文。
new SendPictureClass().execute(response);
可能应该从那里开始......¯_(ツ)_ /¯
感谢帮助人员!
答案 2 :(得分:0)
我也遇到了这个问题,Log无法正常工作
我找到了一个临时解决方案
我尝试使用Toast
来显示响应,然后我发现响应加速,但有很多空格(不确定这些字符是否为空格)。
所以我使用的是Log.i(TAG, rep.trim());
,效果很好。我不知道这个解决方案是否适用于这个问题,但毕竟它对我有用。