sensorsdata / sa-sdk-android

神策数据官方 Android 埋点 SDK,是一款轻量级用于 Android 端的数据采集埋点 SDK,包含代码埋点、全埋点、点击图和可视化全埋点功能。全埋点通过配合神策官方 Android 埋点插件来实现,神策数据官方 Android 埋点插件使用字节码插桩(ASM)的技术实现 Android 端的全埋点(无埋点、无码埋点、无痕埋点、自动埋点)。
http://opensource.sensorsdata.cn
Other
1.31k stars 434 forks source link

调用track,报错415 #117

Closed xieyang94 closed 1 year ago

xieyang94 commented 1 year ago

报错内容:

I/SA.AnalyticsMessages(28072): ret_code: 415
I/SA.AnalyticsMessages(28072): ret_content: {"timestamp":"2022-11-24T02:26:45.496+0000","status":415,"error":"Unsupported Media Type","message":"Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported","path":"/app/event/data"}
I/SA.AnalyticsMessages(28072): ResponseErrorException: flush failure with response '{"timestamp":"2022-11-24T02:26:45.496+0000","status":415,"error":"Unsupported Media Type","message":"Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported","path":"/app/event/data"}', the response code is '415'
I/SA.AnalyticsMessages(28072): Events flushed. [left = 0]

目前的情况就是,我们使用的是老版本的SDK,我们的数据接收地址是一个不带project和token参数的接收地址;

在老版本SDK上是可以正常上报的,但是在新版本上调用track方法就报错如上,上面的内容是调用Flutter插件给出的报错;flutter插件里面是使用的6.6.0的Native SDK;

目前测试的情况是:

老版本Native SDK,数据接收地址携带token和不携带token都是OK的; 新版本Native SDK,数据接收地址携带token是OK的,不携带token就是如上报错 Flutter插件也是使用最新版的6.6.0版本的Native SDK,数据接收地址携带token是OK的,不携带token就是如上报错; 因为某些原因,暂时不能使用6.6.0新版本。

Flutter插件那边小哥给了个地址:

https://sdkdebugtest.datasink.sensorsdata.cn/sa?project=default&token=cfb8b60e42e0ae9b

这个地址有token和没有token都是OK的;

我在神策上创建账号拿到的体验地址:

https://sademo.datasink.sensorsdata.cn/sa?project=VideoWebcastDemo&token=3c559e14653ef272

去掉token报的是403token校验错误;

I/SA.AnalyticsMessages(27194): ret_code: 403
I/SA.AnalyticsMessages(27194): ret_content: Invalid Token 
I/SA.AnalyticsMessages(27194): ResponseErrorException: flush failure with response 'Invalid Token ', the response code is '403'

基于以上:

首先想知道为什么会出现这样的问题? 是否可以解决这个问题? 新版本SDK有没有通过设置参数配置的方式来解决这个问题或者绕开这个问题?

dengshiwei commented 1 year ago

@xieyang94

xieyang94 commented 1 year ago

那个数据接收地址目前在老版本SDK是OK的,没有问题的;在最新版本的SDK是不行的,报错415;

I/SA.AnalyticsMessages(28072): ret_code: 415
I/SA.AnalyticsMessages(28072): ret_content: {"timestamp":"2022-11-24T02:26:45.496+0000","status":415,"error":"Unsupported Media Type","message":"Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported","path":"/app/event/data"}
I/SA.AnalyticsMessages(28072): ResponseErrorException: flush failure with response '{"timestamp":"2022-11-24T02:26:45.496+0000","status":415,"error":"Unsupported Media Type","message":"Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported","path":"/app/event/data"}', the response code is '415'
I/SA.AnalyticsMessages(28072): Events flushed. [left = 0]

而在神策体验demo中提供的数据接收地址,在新老SDK都是OK的;

目前我们的数据接收地址只是在新版SDK不行,在老板SDK是没问题的;这点比较疑惑

dengshiwei commented 1 year ago

@xieyang94 「目前我们的数据接收地址只是在新版SDK不行,在老板SDK是没问题的;这点比较疑惑」这点我也没遇到过,你们的数据接收地址是从我们的神策分析拷贝出来的嘛?

dengshiwei commented 1 year ago

@xieyang94 你遇到的问题还存在吗

xieyang94 commented 1 year ago

存在,但是因为别的原因,这个东西被搁置了。 因为没有排查出具体的原因,所以目前使用的是老版本SDK

dengshiwei commented 1 year ago

@xieyang94 你这边如果有时间可以整个 Demo,我来看看