JAVA菜鸟一枚,这段代码看了很久了,硬是没看懂
一段客户端往服务端传送数据的代码,谁来帮我解读下,感激不尽
private static void Post(ServiceClient client, String url,
JSONObject jobj, boolean allowRetry) {
Request request = new Request(Method.POST, client.getDefaultRequestRoot()
+ url);
request.setEntity(new JsonRepresentation(jobj));
long start = System.currentTimeMillis();
try {
Response response = null;
if (apps != null) {
request.setResourceRef(url);
response = new Response(request);
for (Application app : apps) {
Router router = (Router) app.getInboundRoot();
Restlet restlet = router.getNext(request, response);
if (restlet != null) {
response.setStatus(Status.SUCCESS_OK);
restlet.handle(request, response);
break;
}
}
} else {
response = client.handle(request);
}
long end = System.currentTimeMillis();
if (g_Log.isInfoEnabled() && (end - start) > 500) {
g_Log.info("POST " + url + " in " + (end - start) + "ms");
}
Status st = response.getStatus();
switch (st.getCode()) {
case 404: {
g_Log.error("POST " + url + " - code : 404");
return;
}
case 200:
case 204:
removeCache(client.getName(), url);
return;
case 1002: {
if (allowRetry) {
try {
g_Log.info("链接丢失,重试一次...");
Thread.sleep(300);
client.release();
// 再试一次,如果还不能连上,就算了。
Post(client, url, jobj, !allowRetry);
} catch (InterruptedException e) {
}
}
}
default:
throw new RuntimeException("code : " + st.getCode(), st.getThrowable());
}
} finally {
client.release();
}
}
java url application null string
[解决办法]
[解决办法]
这段代码没什么难的啊。
ServiceClient client, String url,JSONObject jobj, boolean allowRetry
这几个参数都知道吧?(最后一个我也不知道,继续往下看)
new JsonRepresentation(jobj))我猜这个类应该是转换json串的,应该是对象转换成json串的形式吧、
最后根据应用的数量挨个的发送一个请求是么?
没仔细看,如果说错了请见谅。
[解决办法]
这个如果只是发送代码,却自己构建response,不知何意
response = new Response(request);
[解决办法]
private static void Post(ServiceClient client, String url,
JSONObject jobj, boolean allowRetry)
使用client 给url 发送 请。并根据url(该地址的服务器)返回的状态码输出日志记录
ServiceClient 这个类你百度一个吧。