各位大侠
上传文件到服务器,使用HttpURLConnection 上传,上传一半时,此时断网,摩托手机收不到任何异常,此线程则被一直堵塞在此,各位帮忙看看代码。
URL url = new URL(actionUrl);
try
{
connect = (HttpURLConnection) url.openConnection();
connect.setDoOutput(true);
connect.setDoInput(true);
connect.setRequestMethod(httpMethod);
connect.setRequestProperty("Authorization",
"Basic " + authorization);
connect.setRequestProperty("Content-Type",
"multipart/form-data;boundary=NextPart_000_0028_01C198.8469");
connect.setRequestProperty("Accept-Encoding",
"gzip");
connect.setConnectTimeout(15 * 1000);
connect.setReadTimeout(10 * 1000);
connect.connect();
if (request != null)
{
output = new DataOutputStream(connect.getOutputStream());
LogUtil.d(TAG,
"sendMMsRequest >> 开始添加附件");
addFormField(filePathList,
request,
output,
sendContentStr);
String lineEnd = "--NextPart_000_0028_01C198.8469--";
output.writeBytes(lineEnd);
LogUtil.d(TAG,
"sendMMsRequest >> 结束添加附件 ");
LogUtil.d(TAG,
"sendMMsRequest >> 开始往服务器写入数据");
output.flush();
LogUtil.d(TAG,
"sendMMsRequest >> 结束往服务器写入数据");
}
filePathList.clear();
LogUtil.d(TAG,
"sendMMsRequest >> 开始读取服务器数据");
is = connect.getInputStream();//此处堵塞
dis = new DataInputStream(is);
LogUtil.d(TAG,
"sendMMsRequest >> 获得inputStream对象");
int n = 0;
while ((n = dis.read(readBuffer)) != -1)
{
LogUtil.d(TAG,
"sendMMsRequest >> 读取服务器数据" + readBuffer.length);
result += new String(readBuffer,
0,
n);
}
LogUtil.d(TAG,
"sendMMsRequest >> 结束读取服务器数据");
日志打印如下
08-25 01:07:05.484: sendMMsRequest >> 开始添加附件
08-25 01:07:05.491: sendMMsRequest >> 添加附件 20120817153822.jpg
08-25 01:07:06.069: sendMMsRequest >> 添加附件 561.png
08-25 01:07:06.069: sendMMsRequest >> 添加附件 d_YaoYao.mp3
08-25 01:07:07.069: sendMMsRequest >> 结束添加附件
08-25 01:07:07.069: sendMMsRequest >> 开始往服务器写入数据
08-25 01:07:07.069: sendMMsRequest >> 结束往服务器写入数据
08-25 01:07:07.069: sendMMsRequest >> 开始读取服务器数据
分享到:
相关推荐
在Android开发中,HttpUrlConnection是用于网络通信的一种基础组件,尤其在处理JSON数据时,它扮演了重要的角色。本文将详细介绍如何使用HttpUrlConnection进行HTTP的POST和GET请求,并处理JSON响应。 首先,理解...
HttpURLConnection是Java标准库提供的一种网络连接接口,适用于Android系统,它提供了更高效、更灵活的网络通信方式。本文将详细介绍如何利用HttpURLConnection实现Android应用中的断点续传功能。 首先,理解断点续...
接着,要处理网络请求的异步性,避免阻塞主线程,通常我们会使用Android的AsyncTask或者Thread配合Handler。在后台线程中,我们可以读取HTTPURLConnection的输入流,将图片数据缓存到内存或文件中。例如: ```java ...
总结来说,`AsyncTask`结合`HttpURLConnection`能有效处理网络请求,避免阻塞主线程,同时保持用户界面的交互性。这个例子为开发者提供了一个基础的网络请求模板,可以根据实际需求进行扩展和定制。在实际开发中,你...
在Android中,网络操作通常在子线程(非UI线程)中进行,以避免阻塞主线程导致应用无响应。以下是一个简单的GET请求示例: ```java URL url = new URL("http://example.com"); HttpURLConnection connection = ...
本篇文章将深入探讨如何在Android应用中利用HttpURLConnection访问网络,包括设置请求方法、添加请求头、处理响应以及解决常见问题。 1. HttpURLConnection简介: HttpURLConnection是Java内置的类,它是...
在Android开发中,HTTP请求是应用与服务器交互的重要方式之一,`...此外,Android 9.0(Pie)及以上版本不再推荐使用`HttpURLConnection`,而是建议使用`OkHttp`这样的第三方库,它提供了更好的性能和易用性。
在Android应用开发中,与服务器进行数据交互是常见的需求,HttpURLConnection是Android SDK提供的一种轻量级、低级别的网络通信接口。本主题将深入探讨如何使用HttpURLConnection进行Android与服务器的简单交互,...
Android基于HttpUrlConnection类的文件下载实例代码 Android操作系统中,文件下载是一种常见的功能,为了实现文件下载,Android提供了多种方式,包括使用HttpUrlConnection类和OkHttp库等。HttpUrlConnection类是...
HttpUrlConnection是Android系统提供的一个基础网络通信接口,相较于其他如Volley、OkHttp等第三方库,它更轻量级,适合对性能有较高要求或需要自定义网络操作的场景。 首先,我们来看HttpUrlConnection的基本用法...
总的来说,HttpURLConnection更现代,更适合Android,而HttpClient虽然被弃用,但在某些情况下仍然适用。选择哪种方式取决于项目需求和个人偏好。理解这两种方法的工作原理以及如何处理GET和POST请求,是每个Android...
以上就是使用`HttpURLConnection`在Android中进行GET请求的基本流程。注意,由于Android的安全策略,从Android 9(Pie)开始,你可能需要在AndroidManifest.xml中声明`usesCleartextTraffic`属性来允许非加密(HTTP...
调用URL对象的openConnection( )来获取HttpURLConnection对象实例: HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 设置HTTP请求使用的方法:conn.setRequestMethod("GET"); 设置连接超时,...
`HttpURLConnection`是Java标准库提供的一种网络通信方式,适用于Android Studio项目。相较于其他网络库如OkHttp或Volley,`HttpURLConnection`更轻量级,适合小规模或者简单的网络请求。本教程将深入探讨如何使用`...
这个"android HttpURLConnection上传图片demo"提供了一个具体的示例,教我们如何使用HttpURLConnection来完成这一任务。HttpURLConnection是Java标准库中的一个类,它允许Android应用程序与HTTP服务器进行通信,执行...
正文:我在使用HttpURLConnection.getResponseCode()的时候直接报错是IOException错误,responseCode = -1。一直想不明白,同一个程序我调用了两次,结果有一个链接一直OK,另一个却一直报这个错误。后来发现两个...
在Android 5.0之前,由于HttpURLConnection存在一些问题,HttpClient是首选。但随着Android版本的更新,这些问题得到了解决,现在HttpURLConnection成为了首选。 在实际应用中,你可能还需要处理更多细节,例如添加...
b=(Button)this.findViewById(R.id.b);... InputStream is = conn.getInputStream();//取得返回的InputStream bitmap = BitmapFactory.decodeStream(is);//将InputStream变成Bitmap is.close();//关闭InputStream
在Android开发中,当使用HttpURLConnection与Web服务器进行通信时,常常遇到的一个问题是无法正确保持session,导致每次请求都被服务器视为新的独立会话。这主要由于HTTP协议本身的无状态特性,以及Android客户端与...