首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android中的connection.getContentLength()返回-1

在Android中,connection.getContentLength()方法用于获取HTTP连接的内容长度。该方法返回一个long类型的值,表示HTTP响应的内容长度。然而,当无法获取内容长度时,该方法会返回-1。

这种情况通常发生在以下几种情况下:

  1. 服务器未设置Content-Length头部字段:Content-Length是HTTP头部字段之一,用于指示HTTP响应的内容长度。如果服务器未正确设置该字段,或者使用了分块传输编码(chunked transfer encoding),则无法获取内容长度,getContentLength()方法将返回-1。
  2. 服务器响应使用了压缩编码:有时,服务器会对响应内容进行压缩,以减少传输数据量。如果服务器使用了压缩编码(如gzip或deflate),则无法直接获取压缩后的内容长度,getContentLength()方法将返回-1。
  3. 连接未建立或已关闭:如果在调用getContentLength()方法之前,连接未能成功建立或已经关闭,则无法获取内容长度,方法将返回-1。

在处理这种情况时,可以考虑使用其他方法来获取内容长度或处理响应数据。例如,可以使用HttpURLConnectiongetInputStream()方法获取输入流,并通过读取流数据的方式来获取内容长度。另外,还可以使用第三方库,如OkHttp或Volley,它们提供了更强大和灵活的HTTP请求和响应处理功能。

总结起来,connection.getContentLength()方法返回-1表示无法获取HTTP响应的内容长度,可能是由于服务器未设置Content-Length头部字段、使用了压缩编码或连接未建立或已关闭等原因。在实际开发中,我们需要根据具体情况采取适当的处理方式,以确保正确获取和处理HTTP响应数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android NDK编程(七)--- JNI中List结构的类数据返回

    前言 上一篇文章我们介绍了《Android NDK编程(六)--- JNI中类参数的传递与返回》学会了使用类的返回,在做开发中,往往我们返回的参数带有List的数据,所以我们今天这一章来说一下List...的数据返回方法。...代码实现 我们还是接着上面的DEMO,因为已经建好CProduct的类了,所以我们这里就不再创建了。 首先在VaccaeJNI中定义人们的方法getlistproduct() ?...二、获取ArrayList的构造函数ID并创建一个ArrayList对象 ? 三、获取ArrayList的Add函数的ID,准备在循环中调用 ? 四、获取CProduct类并定义类中的各个属性 ?...五、通过循环生成CProduct然后添加到我们的ArrayList中 ? 六、输出我们的ArrayList ?

    4.4K30

    Mybatis 中的主键返回

    XML方式 返回自增主键 1" useGeneratedKeys="true" keyProperty="id"> insert into sys_user(...当需要设置多个属性时 , 使用逗号隔开 , 这种情况下 还需要配置 keyColumn属性 , 按顺序指定数据库的列 , 这里列的值会和 keyProperty 配置的属性一一对应 ....由于要使用数据库返回的主键值 , 所以SQL上下两部分的列中去掉了 id 列和对于的 #{id} 属性 返回非自增主键 采用标签获取主键的值 , 这种方式对提供和不提供主键自增功能的数据库同样适用...keyProperty和上面useGeneratedKeys的用法和含义一样 , 这里的resultType用于设置返回值类型. order 属性和数据库相关 , 在MYSQL 中 , order是AFTER..., 因为当前及记录的主键值在insert语句执行成功之后才能拿到 , 而在ORACLE中 ,oder是BEFORE , 因为ORACLE需要先从序列取到值 , 再将其作为主键插入到数据库

    81020

    Android onActivityResult获取返回值的用法

    显式意图通常主要是启动本应用中的Activity之间的数据,而隐式意图则常见于启动系统中的某些特定的动作,比如打电话,或者是跨应用的Activity启动。...Android 系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。...MainActivity里面的主要代码 (1)当需要返回值时,那么在启动另一个Activity时要用到startActivityForResult(intent, REQUEST_CODE); 注意第二个参数是请求的...: 这个里面的 RESULT_CODE、intent 分别跟上段代码中 onActivityResult() 方法中的第二个、第三个参数相对应。..."); Intent intent1 = new Intent("com.android.camera.action.CROP"); intent1

    1.4K30

    Android Camera1中的对焦与测光

    Android Camera1开发系列连载: Android Camera1详解 Android Camera1显示预览的四种方式 对焦模式 在使用特定的对焦模式的时候,必须确保相机支持该模式,相机支持的对焦模式可以通过...设置对焦区域的时候,需要先查询一下可设置对焦区域的最大个数: // 返回0的时候表示不支持设置对焦区域,通常都是返回1 // 当返回个数大于1的时候,可以设置对焦区域列表, // 每个对焦区域可以设置权重...在TouchAF的时候,测光区域可以和对焦区域一样,也可以区域中心点相同,而框的大小不同,或者对焦区域和测光区域设置为不同区域,这种焦侧分离的功能一般都是在相机app中的专业模式中提供。...注:Redmi k30 5G版 系统相机专业模式 点测光:对画面中较小的区域(占整体面积的1.5% - 3%)进行测光,不考虑周边环境亮度,测光点所侦测的画面非常小,结果比较精确。...在光线色差反差较大的情况下,这种测光模式比矩阵测光更容易控制效果; 平均测光:又叫矩阵测光,对画面中整体区域的光线强弱和色彩等情况进行侦测分析后,得到一个平均比较科学的测光值。

    1.9K10

    Android Camera1中的人脸检测

    检查功能是否支持 在开启人脸检测功能之前,必须检查一下该摄像头是否支持人脸检测,通过接口: // 如果返回0,则表示不支持 Parameters#getMaxNumDetectedFaces() 开启...从源码中可以看到两个接口必须成对出现,连续调用startFaceDetection是会出现异常的。而且默认的检测方式为: /** * Hardware face detection....在相机类app中,可以观察到在手动对焦和拍照的时候会停止绘制人脸框。...通过Face对象,可以获得当前预览帧识别到的人脸信息,包括人脸区域,可信度评分,左右眼睛和嘴巴的坐标点等 Face#score表示人脸识别的可信度,值为[1, 100], 值越高,可信程度越高,在多张人脸的场景下通常都需要过滤掉评分比较低的结果...https://github.com/sifutang/Camera1Demo.git

    1.7K20

    android 中获取sha1值的详细说明

    我们在开发过程中,用到很多三方sdk中申请一些key值都需要我们提供一个sha1值,例如 百度地图  高德地图。...一.eclipse 开发的小伙伴 调试版本(debug版)sha1获取方式 方法一:打开命令行工具 在弹出的命令行程序中输入 cd .android 定位到 .android 文件夹(cd和.android... 在弹出的命令行程序中输入 cd .android 定位到 .android 文件夹(cd和.android之间有空格)。...二.android studio开发的小伙伴 调试版本(debug版)sha1获取方式 方法一: 1.首先需要生成.jks文件,如何生成不清楚的请自行百度。...这时生成出来的只是 debug的SHA1和MD5值。  发布版本(release版)sha1获取方式 如果想要生成release的SHA1和MD5的值,需要在build.gradle中配置如下。

    3K10

    Android Activity返回键控制的两种方式

    Android Activity返回键监听的两种方式 1、覆写Activity的OnBackPressed方法 官方解释: Called when the activity has detected...@Override public void onBackPressed() {  // 完全由自己控制返回键逻辑,系统不再控制,但是有个前提是:  // 不要在Activity的onKeyDown或者OnKeyUp...中拦截掉返回键  // 拦截:就是在OnKeyDown或者OnKeyUp中自己处理了返回键  //(这里处理之后return true.或者return false都会导致onBackPressed不会执行...)   // 不拦截:在OnKeyDown和OnKeyUp中返回super对应的方法  //(如果两个方法都被覆写就分别都要返回super.onKeyDown,super.onKeyUp) } 2、覆写...Activity的onKeyDown或者OnkeyUp,拦截返回键 @Override public boolean onKeyUp(int keyCode, KeyEvent event) {

    2.8K70

    Android 双击返回键退出程序的3种写法~

    ---- 记得去年曾经让LZ写一个连续点击返回键俩次退出程序,,,憋了好久没憋出来。。。23333。。。 下面先说说LZ思路,具体如下: 1....第一种就是根据用户点击俩次的时间间隔去判断是否退出程序; 2. 第二种就是使用android中计时器(**Timer**)。 其实这俩种都差不多.思路是有了,,,接下来要怎么开搞呢???...默认没有执行任何操作,只是简单的给一个false作为返回值。So,,,接下来分别使用如上俩个方法干掉这个当年的拦路虎 ---- 1....One Way:onKeyUp() //记录用户首次点击返回键的时间 private long firstTime=0; @Override public boolean...Two Way:onKeyDown() //记录用户首次点击返回键的时间 private long firstTime=0; @Override public boolean

    1.7K20

    如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理

    在使用 Go 开发的后台服务中,对于错误处理,一直以来都有多种不同的方案,本文探讨并提出一种从服务内到服务外的错误传递、返回和回溯的完整方案,还请读者们一起讨论。...这也是一个语言级的问题 服务/系统的错误信息返回: 微服务/系统在处理失败时,如何返回一个友好的错误信息,依然是需要让调用方优雅地理解和处理。...首先本文就是第一篇:函数内部的错误处理 ---- 高级语言的错误处理机制   一个面向过程的函数,在不同的处理过程中需要 handle 不同的错误信息;一个面向对象的函数,针对一个操作所返回的不同类型的错误...---   下一篇文章是《如何在 Go 中优雅的处理和返回错误(2)——函数/模块的错误信息返回》,笔者详细整理了 Go 1.13 之后的 error wrapping 功能,敬请期待~~ --- 本文章采用...原文标题:《如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理》 发布日期:2021-09-18 原文链接:https://cloud.tencent.com/developer/article

    9.3K151
    领券