- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我使用 curl
查询时,logz.io 就像魅力一样:
curl -XPOST 'https://api.logz.io/v1/query' --header "X-USER-TOKEN : VALID_TOKEN" --header "Content-Type: application/json" -d '{"queryString" : "query","timestamp" : {"gte":1482157546000}}'
但是当我尝试用 JAVA 8 执行相同的操作时,
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
来 self 的 grails 2.5.4 应用:
String baseUrl = "https://api.logz.io/v1/"
String query = "query"
String apiKey = "VALID_TOKEN"
withHttp(uri: baseUrl) {
def bodyContent = [
queryString: query
]
def json = post(path: 'query', body: bodyContent) {
headers.'X-USER-TOKEN' = apiKey
}
return json
}
我有:
| Error 2016-12-26 18:41:06,144 [http-bio-8080-exec-9] ERROR errors.GrailsExceptionResolver - SSLHandshakeException occurred when processing request: [GET] /cms/offer/findWhoEditedAllocationItems/14787265
Received fatal alert: handshake_failure. Stacktrace follows:
Message: Received fatal alert: handshake_failure
Line | Method
->> 192 | getSSLException in sun.security.ssl.Alerts
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 154 | getSSLException in ''
| 2023 | recvAlert . . . . . . . . . . . in sun.security.ssl.SSLSocketImpl
| 1125 | readRecord in ''
| 1375 | performInitialHandshake . . . . in ''
| 1403 | startHandshake in ''
| 1387 | startHandshake . . . . . . . . in ''
| 553 | connectSocket in org.apache.http.conn.ssl.SSLSocketFactory
| 412 | connectSocket . . . . . . . . . in ''
| 179 | openConnection in org.apache.http.impl.conn.DefaultClientConnectionOperator
| 328 | open . . . . . . . . . . . . . in org.apache.http.impl.conn.ManagedClientConnectionImpl
| 612 | tryConnect in org.apache.http.impl.client.DefaultRequestDirector
| 447 | execute . . . . . . . . . . . . in ''
| 884 | doExecute in org.apache.http.impl.client.AbstractHttpClient
| 82 | execute . . . . . . . . . . . . in org.apache.http.impl.client.CloseableHttpClient
| 55 | execute in ''
| 477 | doRequest . . . . . . . . . . . in groovyx.net.http.HTTPBuilder
| 359 | post in ''
| -2 | invoke0 . . . . . . . . . . . . in sun.reflect.NativeMethodAccessorImpl
| 62 | invoke in ''
| 43 | invoke . . . . . . . . . . . . in sun.reflect.DelegatingMethodAccessorImpl
| 498 | invoke in java.lang.reflect.Method
| 1426 | jlrMethodInvoke . . . . . . . . in org.springsource.loaded.ri.ReflectiveInterceptor
| 93 | invoke in org.codehaus.groovy.reflection.CachedMethod
| 325 | doMethodInvoke . . . . . . . . in groovy.lang.MetaMethod
| 1210 | invokeMethod in groovy.lang.MetaClassImpl
| 1123 | invokeMethod . . . . . . . . . in groovy.lang.ExpandoMetaClass
| 1019 | invokeMethod in groovy.lang.MetaClassImpl
| 1122 | invokeMethod . . . . . . . . . in ''
| 1123 | invokeMethod in groovy.lang.ExpandoMetaClass
| 1019 | invokeMethod . . . . . . . . . in groovy.lang.MetaClassImpl
| 69 | callCurrent in org.codehaus.groovy.runtime.callsite.PogoMetaClassSite
| 52 | defaultCallCurrent . . . . . . in org.codehaus.groovy.runtime.callsite.CallSiteArray
| 154 | callCurrent in org.codehaus.groovy.runtime.callsite.AbstractCallSite
| 174 | callCurrent . . . . . . . . . . in ''
| 24 | doCall in com.example.logz.LogzService$__tt__getResultFromQuery_closure3
| -1 | doCall . . . . . . . . . . . . in ''
| -2 | invoke0 in sun.reflect.NativeMethodAccessorImpl
| 62 | invoke . . . . . . . . . . . . in ''
| 43 | invoke in sun.reflect.DelegatingMethodAccessorImpl
| 498 | invoke . . . . . . . . . . . . in java.lang.reflect.Method
| 1426 | jlrMethodInvoke in org.springsource.loaded.ri.ReflectiveInterceptor
| 210 | invoke . . . . . . . . . . . . in org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce
| 71 | call in org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite
| 48 | defaultCall . . . . . . . . . . in org.codehaus.groovy.runtime.callsite.CallSiteArray
| 113 | call in org.codehaus.groovy.runtime.callsite.AbstractCallSite
| 117 | call . . . . . . . . . . . . . in ''
| 93 | doCall in RestGrailsPlugin$_closure4
| -2 | invoke0 . . . . . . . . . . . . in sun.reflect.NativeMethodAccessorImpl
| 62 | invoke in ''
| 43 | invoke . . . . . . . . . . . . in sun.reflect.DelegatingMethodAccessorImpl
| 498 | invoke in java.lang.reflect.Method
| 1426 | jlrMethodInvoke . . . . . . . . in org.springsource.loaded.ri.ReflectiveInterceptor
| 93 | invoke in org.codehaus.groovy.reflection.CachedMethod
| 325 | doMethodInvoke . . . . . . . . in groovy.lang.MetaMethod
| 1210 | invokeMethod in groovy.lang.MetaClassImpl
| 1123 | invokeMethod . . . . . . . . . in groovy.lang.ExpandoMetaClass
| 1019 | invokeMethod in groovy.lang.MetaClassImpl
| 1084 | invokeMethod . . . . . . . . . in ''
| 1123 | invokeMethod in groovy.lang.ExpandoMetaClass
| 1019 | invokeMethod . . . . . . . . . in groovy.lang.MetaClassImpl
| 917 | invokePogoMethod in org.codehaus.groovy.runtime.InvokerHelper
| 900 | invokeMethod . . . . . . . . . in ''
| 189 | invoke in org.codehaus.groovy.runtime.metaclass.ClosureMetaMethod$AnonymousMetaMethod
| 251 | invoke . . . . . . . . . . . . in org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce
| 59 | callCurrent in org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite
| 52 | defaultCallCurrent . . . . . . in org.codehaus.groovy.runtime.callsite.CallSiteArray
| 154 | callCurrent in org.codehaus.groovy.runtime.callsite.AbstractCallSite
| 174 | callCurrent . . . . . . . . . . in ''
| 20 | $tt__getResultFromQuery in com.example.logz.LogzService
| -1 | doCall . . . . . . . . . . . . in com.example.logz.LogzService$_getResultFromQuery_closure1
| -2 | invoke0 in sun.reflect.NativeMethodAccessorImpl
| 62 | invoke . . . . . . . . . . . . in ''
| 43 | invoke in sun.reflect.DelegatingMethodAccessorImpl
| 498 | invoke . . . . . . . . . . . . in java.lang.reflect.Method
| 1426 | jlrMethodInvoke in org.springsource.loaded.ri.ReflectiveInterceptor
| 93 | invoke . . . . . . . . . . . . in org.codehaus.groovy.reflection.CachedMethod
| 325 | doMethodInvoke in groovy.lang.MetaMethod
| 1210 | invokeMethod . . . . . . . . . in groovy.lang.MetaClassImpl
| 1123 | invokeMethod in groovy.lang.ExpandoMetaClass
| 1019 | invokeMethod . . . . . . . . . in groovy.lang.MetaClassImpl
| 426 | call in groovy.lang.Closure
| -1 | call . . . . . . . . . . . . . in com.example.logz.LogzService$_getResultFromQuery_closure1
| 442 | call in groovy.lang.Closure
| -1 | call . . . . . . . . . . . . . in com.example.logz.LogzService$_getResultFromQuery_closure1
| 90 | doInTransaction in org.codehaus.groovy.grails.orm.support.GrailsTransactionTemplate$2
| 133 | execute . . . . . . . . . . . . in org.springframework.transaction.support.TransactionTemplate
| 87 | execute in org.codehaus.groovy.grails.orm.support.GrailsTransactionTemplate
| -1 | getResultFromQuery . . . . . . in com.example.logz.LogzService
| -2 | invoke0 in sun.reflect.NativeMethodAccessorImpl
| 62 | invoke . . . . . . . . . . . . in ''
| 43 | invoke in sun.reflect.DelegatingMethodAccessorImpl
| 498 | invoke . . . . . . . . . . . . in java.lang.reflect.Method
| 1426 | jlrMethodInvoke in org.springsource.loaded.ri.ReflectiveInterceptor
| 93 | invoke . . . . . . . . . . . . in org.codehaus.groovy.reflection.CachedMethod
| 325 | doMethodInvoke in groovy.lang.MetaMethod
| -1 | call . . . . . . . . . . . . . in groovy.lang.MetaMethod$doMethodInvoke$0
| 48 | defaultCall in org.codehaus.groovy.runtime.callsite.CallSiteArray
| -1 | call . . . . . . . . . . . . . in groovy.lang.MetaMethod$doMethodInvoke$0
| 184 | doCall in GrailsMelodyGrailsPlugin$_closure4$_closure16$_closure17
| -1 | invoke . . . . . . . . . . . . in sun.reflect.GeneratedMethodAccessor399
| 43 | invoke in sun.reflect.DelegatingMethodAccessorImpl
| 498 | invoke . . . . . . . . . . . . in java.lang.reflect.Method
| 1426 | jlrMethodInvoke in org.springsource.loaded.ri.ReflectiveInterceptor
| 93 | invoke . . . . . . . . . . . . in org.codehaus.groovy.reflection.CachedMethod
| 84 | invoke in org.codehaus.groovy.runtime.metaclass.ClosureMetaMethod
| 1121 | invokeMethod . . . . . . . . . in groovy.lang.ExpandoMetaClass
| 1019 | invokeMethod in groovy.lang.MetaClassImpl
| 42 | call . . . . . . . . . . . . . in org.codehaus.groovy.runtime.callsite.PogoMetaClassSite
| 48 | defaultCall in org.codehaus.groovy.runtime.callsite.CallSiteArray
| 113 | call . . . . . . . . . . . . . in org.codehaus.groovy.runtime.callsite.AbstractCallSite
| 125 | call in ''
| 161 | findWhoEditedAllocationItems . in com.example.sale.OfferController
| -2 | invoke0 in sun.reflect.NativeMethodAccessorImpl
| 62 | invoke . . . . . . . . . . . . in ''
| 43 | invoke in sun.reflect.DelegatingMethodAccessorImpl
| 498 | invoke . . . . . . . . . . . . in java.lang.reflect.Method
| 1426 | jlrMethodInvoke in org.springsource.loaded.ri.ReflectiveInterceptor
| 154 | invoke . . . . . . . . . . . . in org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper
| 375 | handleAction in org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper
| 252 | executeAction . . . . . . . . . in ''
| 205 | handleURI in ''
| 126 | handleURI . . . . . . . . . . . in ''
| 72 | handleRequest in org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController
| 50 | handle . . . . . . . . . . . . in org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
| 347 | doDispatch in org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet
| 893 | doService . . . . . . . . . . . in org.springframework.web.servlet.DispatcherServlet
| 967 | processRequest in org.springframework.web.servlet.FrameworkServlet
| 858 | doGet . . . . . . . . . . . . . in ''
| 620 | service in javax.servlet.http.HttpServlet
| 843 | service . . . . . . . . . . . . in org.springframework.web.servlet.FrameworkServlet
| 727 | service in javax.servlet.http.HttpServlet
| 303 | internalDoFilter . . . . . . . in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter in ''
| 52 | doFilter . . . . . . . . . . . in org.apache.tomcat.websocket.server.WsFilter
| 241 | internalDoFilter in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter . . . . . . . . . . . in ''
| 101 | doFilter in org.springframework.web.filter.OncePerRequestFilter
| 241 | internalDoFilter . . . . . . . in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter in ''
| 101 | doFilter . . . . . . . . . . . in org.springframework.web.filter.OncePerRequestFilter
| 241 | internalDoFilter in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter . . . . . . . . . . . in ''
| 101 | doFilter in org.springframework.web.filter.OncePerRequestFilter
| 241 | internalDoFilter . . . . . . . in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter in ''
| 748 | invoke . . . . . . . . . . . . in org.apache.catalina.core.ApplicationDispatcher
| 486 | processRequest in ''
| 411 | doForward . . . . . . . . . . . in ''
| 338 | forward in ''
| -2 | invoke0 . . . . . . . . . . . . in sun.reflect.NativeMethodAccessorImpl
| 62 | invoke in ''
| 43 | invoke . . . . . . . . . . . . in sun.reflect.DelegatingMethodAccessorImpl
| 498 | invoke in java.lang.reflect.Method
| 1426 | jlrMethodInvoke . . . . . . . . in org.springsource.loaded.ri.ReflectiveInterceptor
| 150 | invoke in net.bull.javamelody.JspWrapper
| 285 | invoke . . . . . . . . . . . . in net.bull.javamelody.JdbcWrapper$DelegatingInvocationHandler
| -1 | forward in com.sun.proxy.$Proxy49
| 178 | forwardRequestForUrlMappingInfo in org.codehaus.groovy.grails.web.mapping.UrlMappingUtils
| 144 | forwardRequestForUrlMappingInfo in ''
| 135 | forwardRequestForUrlMappingInfo in ''
| 216 | doFilterInternal in org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter
| 107 | doFilter . . . . . . . . . . . in org.springframework.web.filter.OncePerRequestFilter
| 241 | internalDoFilter in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter . . . . . . . . . . . in ''
| 198 | doFilter in net.bull.javamelody.MonitoringFilter
| 176 | doFilter . . . . . . . . . . . in ''
| 241 | internalDoFilter in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter . . . . . . . . . . . in ''
| 69 | doFilterInternal in org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter
| 107 | doFilter . . . . . . . . . . . in org.springframework.web.filter.OncePerRequestFilter
| 241 | internalDoFilter in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter . . . . . . . . . . . in ''
| 67 | doFilterInternal in org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter
| 107 | doFilter . . . . . . . . . . . in org.springframework.web.filter.OncePerRequestFilter
| 241 | internalDoFilter in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter . . . . . . . . . . . in ''
| 449 | executeChain in org.apache.shiro.web.servlet.AbstractShiroFilter
| 365 | call . . . . . . . . . . . . . in org.apache.shiro.web.servlet.AbstractShiroFilter$1
| 90 | doCall in org.apache.shiro.subject.support.SubjectCallable
| 83 | call . . . . . . . . . . . . . in ''
| 383 | execute in org.apache.shiro.subject.support.DelegatingSubject
| 362 | doFilterInternal . . . . . . . in org.apache.shiro.web.servlet.AbstractShiroFilter
| 125 | doFilter in org.apache.shiro.web.servlet.OncePerRequestFilter
| 344 | invokeDelegate . . . . . . . . in org.springframework.web.filter.DelegatingFilterProxy
| 261 | doFilter in ''
| 241 | internalDoFilter . . . . . . . in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter in ''
| 85 | doFilterInternal . . . . . . . in org.springframework.web.filter.CharacterEncodingFilter
| 107 | doFilter in org.springframework.web.filter.OncePerRequestFilter
| 344 | invokeDelegate . . . . . . . . in org.springframework.web.filter.DelegatingFilterProxy
| 261 | doFilter in ''
| 241 | internalDoFilter . . . . . . . in org.apache.catalina.core.ApplicationFilterChain
| 208 | doFilter in ''
| 220 | invoke . . . . . . . . . . . . in org.apache.catalina.core.StandardWrapperValve
| 122 | invoke in org.apache.catalina.core.StandardContextValve
| 171 | invoke . . . . . . . . . . . . in org.apache.catalina.core.StandardHostValve
| 103 | invoke in org.apache.catalina.valves.ErrorReportValve
| 116 | invoke . . . . . . . . . . . . in org.apache.catalina.core.StandardEngineValve
| 408 | service in org.apache.catalina.connector.CoyoteAdapter
| 1070 | process . . . . . . . . . . . . in org.apache.coyote.http11.AbstractHttp11Processor
| 611 | process in org.apache.coyote.AbstractProtocol$AbstractConnectionHandler
| 316 | run . . . . . . . . . . . . . . in org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor
| 1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 617 | run . . . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
| 61 | run in org.apache.tomcat.util.threads.TaskThread$WrappingRunnable
^ 745 | run . . . . . . . . . . . . . . in java.lang.Thread
我也尝试在启动应用程序时添加标志:-Ddeployment.security.TLSv1.2=true
但它仍然返回相同的错误。
api.logz.io
服务器的统计信息看起来正常:https://www.ssllabs.com/ssltest/analyze.html?d=api.logz.io
如何使用此 API?
最佳答案
正如支持 channel 中的回答,以下 java 8 代码正在运行:
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
public class Main {
public static void main(String[] args) throws IOException {
String token = "XXX";
String url = "https://api.logz.io/v1/query";
String query = "{ \"queryString\": \"*\" }";
URL myurl = new URL(url);
HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-length", String.valueOf(query.length()));
con.setRequestProperty("Content-Type","application/json");
con.setRequestProperty("X-USER-TOKEN",token);
con.setDoOutput(true);
con.setDoInput(true);
DataOutputStream output = new DataOutputStream(con.getOutputStream());
output.writeBytes(query);
output.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuilder sb = new StringBuilder();
reader.lines().forEach(sb::append);
System.out.println(sb.toString());
}
}
所以我认为问题出在 grails 上,而不是 Java 8
关于ssl - 来自 grails 应用程序的 handshake_failure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41337467/
我是 C 语言新手,我编写了这个 C 程序,让用户输入一年中的某一天,作为返回,程序将输出月份以及该月的哪一天。该程序运行良好,但我现在想简化该程序。我知道我需要一个循环,但我不知道如何去做。这是程序
我一直在努力找出我的代码有什么问题。这个想法是创建一个小的画图程序,并有红色、绿色、蓝色和清除按钮。我有我能想到的一切让它工作,但无法弄清楚代码有什么问题。程序打开,然后立即关闭。 import ja
我想安装screen,但是接下来我应该做什么? $ brew search screen imgur-screenshot screen
我有一个在服务器端工作的 UDP 套接字应用程序。为了测试服务器端,我编写了一个简单的 python 客户端程序,它发送消息“hello world how are you”。服务器随后应接收消息,将
我有一个 shell 脚本,它运行一个 Python 程序来预处理一些数据,然后运行一个 R 程序来执行一些长时间运行的任务。我正在学习使用 Docker 并且我一直在运行 FROM r-base:l
在 Linux 中。我有一个 c 程序,它读取一个 2048 字节的文本文件作为输入。我想从 Python 脚本启动 c 程序。我希望 Python 脚本将文本字符串作为参数传递给 c 程序,而不是将
前言 最近开始整理笔记里的库存草稿,本文是 23 年 5 月创建的了(因为中途转移到 onedrive,可能还不止) 网页调起电脑程序是经常用到的场景,比如百度网盘下载,加入 QQ 群之类的 我
对于一个类,我被要求编写一个 VHDL 程序,该程序接受两个整数输入 A 和 B,并用 A+B 替换 A,用 A-B 替换 B。我编写了以下程序和测试平台。它完成了实现和行为语法检查,但它不会模拟。尽
module Algorithm where import System.Random import Data.Maybe import Data.List type Atom = String ty
我想找到两个以上数字的最小公倍数 求给定N个数的最小公倍数的C++程序 最佳答案 int lcm(int a, int b) { return (a/gcd(a,b))*b; } 对于gcd,请查看
这个程序有错误。谁能解决这个问题? Error is :TempRecord already defines a member called 'this' with the same paramete
当我运行下面的程序时,我在 str1 和 str2 中得到了垃圾值。所以 #include #include #include using namespace std; int main() {
这是我的作业: 一对刚出生的兔子(一公一母)被放在田里。兔子在一个月大时可以交配,因此在第二个月的月底,每对兔子都会生出两对新兔子,然后死去。 注:在第0个月,有0对兔子。第 1 个月,有 1 对兔子
我编写了一个程序,通过对字母使用 switch 命令将十进制字符串转换为十六进制,但是如果我使用 char,该程序无法正常工作!没有 switch 我无法处理 9 以上的数字。我希望你能理解我,因为我
我是 C++ 新手(虽然我有一些 C 语言经验)和 MySQL,我正在尝试制作一个从 MySQL 读取数据库的程序,我一直在关注这个 tutorial但当我尝试“构建”解决方案时出现错误。 (我正在使
仍然是一个初学者,只是尝试使用 swift 中的一些基本函数。 有人能告诉我这段代码有什么问题吗? import UIKit var guessInt: Int var randomNum = arc
我正在用 C++11 编写一个函数,它采用 constant1 + constant2 形式的表达式并将它们折叠起来。 constant1 和 constant2 存储在 std::string 中,
我用 C++ 编写了这段代码,使用运算符重载对 2 个矩阵进行加法和乘法运算。当我执行代码时,它会在第 57 行和第 59 行产生错误,非法结构操作(两行都出现相同的错误)。请解释我的错误。提前致谢:
我是 C++ 的初学者,我想编写一个简单的程序来交换字符串中的两个字符。 例如;我们输入这个字符串:“EXAMPLE”,我们给它交换这两个字符:“E”和“A”,输出应该类似于“AXEMPLA”。 我在
我需要以下代码的帮助: 声明 3 个 double 类型变量,每个代表三角形的三个边中的一个。 提示用户为第一面输入一个值,然后 将用户的输入设置为您创建的代表三角形第一条边的变量。 将最后 2 个步
我是一名优秀的程序员,十分优秀!