使用ChromeDriver的时候和skywaling发生冲突的问题

错误描述

在使用chromedriver的时候发现如下报错

java.lang.IllegalArgumentException: No WebSocketUpgradeHandler but scheme is ws
at org.asynchttpclient.netty.request.NettyRequestSender.validateWebSocketRequest(NettyRequestSender.java:577)
at org.asynchttpclient.netty.request.NettyRequestSender.sendRequest(NettyRequestSender.java:95)
at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBp(DefaultAsyncHttpClient.java:259)
at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBpaccessorP9Gq6idG(DefaultAsyncHttpClient.java)
at org.asynchttpclient.DefaultAsyncHttpClientauxiliaryV5w3vlRG.call(Unknown Source)
at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInterWithOverrideArgs.intercept(InstMethodsInterWithOverrideArgs.java:85)
at org.asynchttpclient.DefaultAsyncHttpClient.execute(DefaultAsyncHttpClient.java)
at org.asynchttpclient.DefaultAsyncHttpClient.executeRequest(DefaultAsyncHttpClient.java:228)
at org.asynchttpclient.BoundRequestBuilder.execute(BoundRequestBuilder.java:35)
at org.openqa.selenium.remote.http.netty.NettyWebSocket.<init>(NettyWebSocket.java:66)
at org.openqa.selenium.remote.http.netty.NettyWebSocket.lambdacreate3(NettyWebSocket.java:137)
at org.openqa.selenium.remote.http.netty.NettyClient.openSocket(NettyClient.java:132)
at org.openqa.selenium.devtools.Connection.<init>(Connection.java:77)
at org.openqa.selenium.chromium.ChromiumDriver.lambdanew2(ChromiumDriver.java:124)
at java.util.Optional.map(Optional.java:215)
at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:122)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:106)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:93)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:82)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.getChromeDriver(ChromeDriverDubboImpl.java:162)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.callChrome(ChromeDriverDubboImpl.java:126)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.lambdanull0(ChromeDriverDubboImpl.java:137)
at java.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
20220430 09:56:51.629 [pool-3-thread-1] [WARN ] [TID:N/A] org.openqa.selenium.remote.http.netty.NettyWebSocket - java.lang.IllegalArgumentException: No WebSocketUpgradeHandler but scheme is ws
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: No WebSocketUpgradeHandler but scheme is ws
at org.asynchttpclient.ListenableFutureCompletedFailure.<init>(ListenableFuture.java:86) at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBp(DefaultAsyncHttpClient.java:262) at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBpaccessorP9Gq6idG(DefaultAsyncHttpClient.java) at org.asynchttpclient.DefaultAsyncHttpClientauxiliaryV5w3vlRG.call(Unknown Source) at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInterWithOverrideArgs.intercept(InstMethodsInterWithOverrideArgs.java:85) at org.asynchttpclient.DefaultAsyncHttpClient.execute(DefaultAsyncHttpClient.java) at org.asynchttpclient.DefaultAsyncHttpClient.executeRequest(DefaultAsyncHttpClient.java:228) at org.asynchttpclient.BoundRequestBuilder.execute(BoundRequestBuilder.java:35) at org.openqa.selenium.remote.http.netty.NettyWebSocket.<init>(NettyWebSocket.java:66) at org.openqa.selenium.remote.http.netty.NettyWebSocket.lambdacreate3(NettyWebSocket.java:137) at org.openqa.selenium.remote.http.netty.NettyClient.openSocket(NettyClient.java:132) at org.openqa.selenium.devtools.Connection.<init>(Connection.java:77) at org.openqa.selenium.chromium.ChromiumDriver.lambdanew2(ChromiumDriver.java:124) at java.util.Optional.map(Optional.java:215) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:122) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:106) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:93) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:82) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.getChromeDriver(ChromeDriverDubboImpl.java:162) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.callChrome(ChromeDriverDubboImpl.java:126) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.lambdanull0(ChromeDriverDubboImpl.java:137) at java.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.IllegalArgumentException: No WebSocketUpgradeHandler but scheme is ws at org.asynchttpclient.netty.request.NettyRequestSender.validateWebSocketRequest(NettyRequestSender.java:577) at org.asynchttpclient.netty.request.NettyRequestSender.sendRequest(NettyRequestSender.java:95) at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBp(DefaultAsyncHttpClient.java:259) ... 24 common frames omitted 20220430 09:56:51.643 [pool-3-thread-1] [ERROR] [TID:N/A] com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl - ChromeDriver启动失败,error msg:Unable to establish websocket connection to http://localhost:30368/devtools/browser/582740e9-cbcf-4a3c-8a29-eb56c01770e3 Build info: version: '4.1.3', revision: '7b1ebf28ef' System info: host: 'cloud-dfs-100-61', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-142-generic', java.version: '1.8.0_151' Driver info: driver.version: ChromeDriver org.openqa.selenium.remote.http.ConnectionFailedException: Unable to establish websocket connection to http://localhost:30368/devtools/browser/582740e9-cbcf-4a3c-8a29-eb56c01770e3 Build info: version: '4.1.3', revision: '7b1ebf28ef' System info: host: 'cloud-dfs-100-61', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-142-generic', java.version: '1.8.0_151' Driver info: driver.version: ChromeDriver at org.openqa.selenium.remote.http.netty.NettyWebSocket.<init>(NettyWebSocket.java:104) at org.openqa.selenium.remote.http.netty.NettyWebSocket.lambdacreate3(NettyWebSocket.java:137) at org.openqa.selenium.remote.http.netty.NettyClient.openSocket(NettyClient.java:132) at org.openqa.selenium.devtools.Connection.<init>(Connection.java:77) at org.openqa.selenium.chromium.ChromiumDriver.lambdanew2(ChromiumDriver.java:124) at java.util.Optional.map(Optional.java:215) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:122) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:106) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:93) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:82) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.getChromeDriver(ChromeDriverDubboImpl.java:162) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.callChrome(ChromeDriverDubboImpl.java:126) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.lambdanull0(ChromeDriverDubboImpl.java:137) at java.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 20220430 09:56:51.823 [Forwarding newSession on session null to remote] [INFO ] [TID:N/A] org.openqa.selenium.remote.ProtocolHandshake - Detected dialect: W3C 20220430 09:56:51.833 [pool-3-thread-2] [WARN ] [TID:aa8e5ee61c1a478292ba638bb156c0b6.214.16512838118330005] org.openqa.selenium.remote.http.WebSocket - No WebSocketUpgradeHandler but scheme is ws java.lang.IllegalArgumentException: No WebSocketUpgradeHandler but scheme is ws at org.asynchttpclient.netty.request.NettyRequestSender.validateWebSocketRequest(NettyRequestSender.java:577) at org.asynchttpclient.netty.request.NettyRequestSender.sendRequest(NettyRequestSender.java:95) at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBp(DefaultAsyncHttpClient.java:259) at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBpaccessorP9Gq6idG(DefaultAsyncHttpClient.java) at org.asynchttpclient.DefaultAsyncHttpClientauxiliaryV5w3vlRG.call(Unknown Source) at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInterWithOverrideArgs.intercept(InstMethodsInterWithOverrideArgs.java:85) at org.asynchttpclient.DefaultAsyncHttpClient.execute(DefaultAsyncHttpClient.java) at org.asynchttpclient.DefaultAsyncHttpClient.executeRequest(DefaultAsyncHttpClient.java:228) at org.asynchttpclient.BoundRequestBuilder.execute(BoundRequestBuilder.java:35) at org.openqa.selenium.remote.http.netty.NettyWebSocket.<init>(NettyWebSocket.java:66) at org.openqa.selenium.remote.http.netty.NettyWebSocket.lambdacreate3(NettyWebSocket.java:137) at org.openqa.selenium.remote.http.netty.NettyClient.openSocket(NettyClient.java:132) at org.openqa.selenium.devtools.Connection.<init>(Connection.java:77) at org.openqa.selenium.chromium.ChromiumDriver.lambdanew2(ChromiumDriver.java:124) at java.util.Optional.map(Optional.java:215) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:122) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:106) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:93) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:82) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.getChromeDriver(ChromeDriverDubboImpl.java:162) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.callChrome(ChromeDriverDubboImpl.java:126) at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.lambdanull0(ChromeDriverDubboImpl.java:137) at java.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 20220430 09:56:51.835 [pool-3-thread-2] [WARN ] [TID:N/A] org.openqa.selenium.remote.http.netty.NettyWebSocket - java.lang.IllegalArgumentException: No WebSocketUpgradeHandler but scheme is ws java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: No WebSocketUpgradeHandler but scheme is ws at org.asynchttpclient.ListenableFutureCompletedFailure.<init>(ListenableFuture.java:86)
at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBp(DefaultAsyncHttpClient.java:262)
at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBpaccessorP9Gq6idG(DefaultAsyncHttpClient.java)
at org.asynchttpclient.DefaultAsyncHttpClientauxiliaryV5w3vlRG.call(Unknown Source)
at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInterWithOverrideArgs.intercept(InstMethodsInterWithOverrideArgs.java:85)
at org.asynchttpclient.DefaultAsyncHttpClient.execute(DefaultAsyncHttpClient.java)
at org.asynchttpclient.DefaultAsyncHttpClient.executeRequest(DefaultAsyncHttpClient.java:228)
at org.asynchttpclient.BoundRequestBuilder.execute(BoundRequestBuilder.java:35)
at org.openqa.selenium.remote.http.netty.NettyWebSocket.<init>(NettyWebSocket.java:66)
at org.openqa.selenium.remote.http.netty.NettyWebSocket.lambdacreate3(NettyWebSocket.java:137)
at org.openqa.selenium.remote.http.netty.NettyClient.openSocket(NettyClient.java:132)
at org.openqa.selenium.devtools.Connection.<init>(Connection.java:77)
at org.openqa.selenium.chromium.ChromiumDriver.lambdanew2(ChromiumDriver.java:124)
at java.util.Optional.map(Optional.java:215)
at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:122)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:106)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:93)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:82)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.getChromeDriver(ChromeDriverDubboImpl.java:162)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.callChrome(ChromeDriverDubboImpl.java:126)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.lambdanull0(ChromeDriverDubboImpl.java:137)
at java.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: No WebSocketUpgradeHandler but scheme is ws
at org.asynchttpclient.netty.request.NettyRequestSender.validateWebSocketRequest(NettyRequestSender.java:577)
at org.asynchttpclient.netty.request.NettyRequestSender.sendRequest(NettyRequestSender.java:95)
at org.asynchttpclient.DefaultAsyncHttpClient.executeoriginalgPmIvOBp(DefaultAsyncHttpClient.java:259)
... 24 common frames omitted
20220430 09:56:51.837 [pool-3-thread-2] [ERROR] [TID:N/A] com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl - ChromeDriver启动失败,error msg:Unable to establish websocket connection to http://localhost:10870/devtools/browser/ad72bc97-293a-4821-b43a-acc2e8f7cfc4
Build info: version: '4.1.3', revision: '7b1ebf28ef'
System info: host: 'cloud-dfs-100-61', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-142-generic', java.version: '1.8.0_151'
Driver info: driver.version: ChromeDriver
org.openqa.selenium.remote.http.ConnectionFailedException: Unable to establish websocket connection to http://localhost:10870/devtools/browser/ad72bc97-293a-4821-b43a-acc2e8f7cfc4
Build info: version: '4.1.3', revision: '7b1ebf28ef'
System info: host: 'cloud-dfs-100-61', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-142-generic', java.version: '1.8.0_151'
Driver info: driver.version: ChromeDriver
at org.openqa.selenium.remote.http.netty.NettyWebSocket.<init>(NettyWebSocket.java:104)
at org.openqa.selenium.remote.http.netty.NettyWebSocket.lambdacreate3(NettyWebSocket.java:137)
at org.openqa.selenium.remote.http.netty.NettyClient.openSocket(NettyClient.java:132)
at org.openqa.selenium.devtools.Connection.<init>(Connection.java:77)
at org.openqa.selenium.chromium.ChromiumDriver.lambdanew2(ChromiumDriver.java:124)
at java.util.Optional.map(Optional.java:215)
at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:122)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:106)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:93)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:82)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.getChromeDriver(ChromeDriverDubboImpl.java:162)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.callChrome(ChromeDriverDubboImpl.java:126)
at com.deepwise.cloud.dfs.dubbo.ChromeDriverDubboImpl.lambdanull0(ChromeDriverDubboImpl.java:137)
at java.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

解决过程

看了下报错的对战信息,发现是因为skywalking字节码的增强造成的

org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInterWithOverrideArgs.intercept(InstMethodsInterWithOverrideArgs.java:85)

在使用chromedriver的时候需要引入依赖包

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>4.1.3</version>
        </dependency>

通过这个依赖包间接依赖了

<dependency>
    <groupId>org.asynchttpclient</groupId>
    <artifactId>async-http-client</artifactId>
    <version>2.12.3</version>
</dependency>

而skywalking对aync-http-client的增强导致报错

NettyRequestSender的sendRequest在发送ws://localhost:26135/devtools/browser请求的时候,入参WebSocketUpgradeHandler被skywalking的增强转成了AsyncHandlerWrapper,导致如下校验发生报错 No WebSocketUpgradeHandler but scheme is ws

private void validateWebSocketRequest(Request request, AsyncHandler<?> asyncHandler) {
  Uri uri = request.getUri();
  boolean isWs = uri.isWebSocket();
  if (asyncHandler instanceof WebSocketUpgradeHandler) {
    if (!isWs) {
      throw new IllegalArgumentException(
              "WebSocketUpgradeHandler but scheme isn't ws or wss: " + uri.getScheme());
    } else if (!request.getMethod().equals(GET) && !request.getMethod().equals(CONNECT)) {
      throw new IllegalArgumentException(
              "WebSocketUpgradeHandler but method isn't GET or CONNECT: " + request.getMethod());
    }
  } else if (isWs) {
    throw new IllegalArgumentException("No WebSocketUpgradeHandler but scheme is " + uri.getScheme());
  }
}

所以需要取消对aync-http-client的增强来防止报错,查看skywalking的插件apm-asynchttpclient-2.x-plugin-8.3.0.jar是用来对aync-http-client注入增强用的,删除这个插件后,恢复正常。

版本说明

Skywalking 8.3.0

selenium-chrome-driver 4.1.3

chromeDriver 80.0.3987.16

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容