Runnable runnable = new Runnable() {
@Override
public void run() {
HttpURLConnection conn = null;
InputStream inputStream = null;
try {
URL url = new URL(baseUrl);
conn = (HttpURLConnection)url.openConnection();
conn.setConnectTimeout(10000);
conn.setReadTimeout(8000);
conn.setDoInput(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "text/html");
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("contentType", "utf-8");
inputStream = conn.getInputStream();
byte[] buffer = null;
if(conn.getResponseCode() == 200){
buffer = new byte[1024];
ByteArrayOutputStream out = new ByteArrayOutputStream();
int len;
while ((len = inputStream.read(buffer)) != -1)
{
out.write(buffer, 0, len);
}
buffer = out.toByteArray();
}
mCallback.HandleAsync(buffer);
SendMsg("value",buffer);
} catch (Exception e) {
e.printStackTrace();
Log.e("sjr","Network-error");
}
finally{
try {
if(inputStream != null){
inputStream.close();
}
if(conn != null){
conn.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
};
private Runnable runnable = new Runnable() {
@Override
public void run() {
String url = BaseServicesInfo.SERVER_BASE_PATH + fileName;
HttpPost httpRequest = new HttpPost(url);
try{
HttpEntity entity = new UrlEncodedFormEntity(params);
httpRequest.setEntity(entity);
HttpClient client = new DefaultHttpClient();
// /* 请求超时 */
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 20000);
// /* 读取超时 */
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 20000 );
HttpResponse response = client.execute(httpRequest);
if(response.getStatusLine().getStatusCode() == 200){
str = EntityUtils.toString(response.getEntity());
Message msg = new Message();
Bundle data = new Bundle();
data.putString("value", str);
msg.setData(data);
handler.sendMessage(msg);
}else{
str = String.valueOf(response.getStatusLine().getStatusCode());
Message msg = new Message();
Bundle data = new Bundle();
data.putString("error", str);
msg.setData(data);
handler.sendMessage(msg);
}
}catch(Exception e){
e.printStackTrace();
Message msg = new Message();
Bundle data = new Bundle();
data.putString("error", str);
msg.setData(data);
handler.sendMessage(msg);
}
}
};
分享到:
相关推荐
在Android开发中,POST和GET是两种主要的HTTP请求方法,用于从服务器获取数据或向服务器发送数据。本文将深入探讨这两种方法的工作原理、应用场景以及如何在Android中实现它们。 一、POST与GET方法的区别 1. 工作...
以上就是关于Android的OkHttp3框架中GET和POST请求的基本使用方法,通过这个库,开发者可以高效、安全地进行网络通信。在实际项目中,可以根据需求进行更复杂的定制和优化,例如设置超时、重试策略等。希望这个概述...
本篇主要介绍如何在Android应用中使用HttpPost实现与服务器的通信,以及涉及到的相关技术点。 首先,我们需要理解Android网络访问的基本规则。Android系统对网络操作进行了严格的限制,所有网络请求必须在主线程...
本教程将深入探讨如何在Android中使用HTTP GET和POST方法进行网络请求,通过一个实际的HttpTest示例来阐述相关知识。 一、HTTP GET与POST的区别 1. GET:主要用来获取资源,它是幂等的,即多次执行同一个GET请求,...
- 设置连接属性,如设置请求方法为POST,通过`setDoOutput(true)`启用输出流,设置超时时间等。 - 打开输出流,使用`DataOutputStream`写入POST数据,数据格式通常为键值对,如`key1=value1&key2=value2`。 - ...
总结起来,Android开发者在使用`HttpURLConnection`进行HTTP GET请求时,应了解请求的建立、连接属性设置、请求执行、响应处理以及连接关闭等步骤。同时,理解Android安全策略对于正确实现网络通信至关重要。
在Android开发中,获取网络数据是常见的需求,通常我们通过HTTP协议发起GET或POST请求来实现。本教程将详细介绍如何在Android Studio中使用Java编写代码发起GET网络请求,适合初学者学习。 首先,理解GET请求的基本...
首先,初始化`HttpClient`对象和`HttpGet`、`HttpPost`、`HttpPut`、`HttpDelete`等请求对象,并设置必要的请求头: ```java public class HttpClientUtil { private static final String USER_AGENT = "Mozilla/...
本文将深入探讨Android应用中如何实现GET与POST请求,并通过具体示例代码来帮助开发者更好地理解和掌握这两种HTTP请求方式。 #### GET请求 GET请求是一种用于获取资源的方法,通常用于从服务器获取数据。在Android...
在实际项目中,创建一个自己的HTTP工具类可以更好地管理和控制网络请求,包括错误处理、超时设置、缓存策略等。 "java_http_post"可能是另一个关于POST请求的实现,可能包含了不同的处理方式或者优化,比如异步请求...
本文将详细解析如何利用OkHttp实现基于链式调用的同步和异步GET、POST请求。 首先,我们需要理解OkHttp的核心概念。OkHttp是一个HTTP客户端,它的设计目标是减少网络延迟,提高应用程序的性能。它通过缓存响应数据...
本篇文章主要聚焦于使用`HttpURLConnection`类来发送POST和GET请求,这是Android SDK内置的一种HTTP请求方法,相较于第三方库如OkHttp或Volley,使用`HttpURLConnection`更轻量级,易于理解和控制。 首先,我们先...
在Android开发中,Java的HttpURLConnection是用于网络通信的一个基础组件,它提供了HTTP协议的低级别接口,可以用来执行GET、POST以及其他HTTP方法。在这个场景下,我们将详细探讨如何使用Java原生的...
它允许开发者轻松地执行GET和POST请求,并且支持动态添加和删除请求参数。此外,它还具有自动格式化JSON响应的功能,这对于调试和理解返回的数据结构非常有用。 首先,让我们深入了解一下GET和POST请求。GET是最...
2. **创建HttpGet或HttpPost对象**:根据需求创建`HttpGet`或`HttpPost`,并设置URL。 3. **设置请求参数**:对于POST请求,使用`HttpEntityEnclosingRequestBase`子类如`HttpPost`,通过`setEntity()`添加请求实体...
本篇将详细探讨Android中的网络编程,主要涉及`HttpGet`和`HttpPost`两种HTTP请求方法。 首先,我们要明白Android网络编程的基本原理。Android系统基于Java,因此它使用了Java的网络库,如`java.net`包下的Socket和...
在 Android Studio 中调用 Restful WCF 接口需要使用 Java 的标准类 HttpURLConnection,该类继承自 URLConnection,提供了访问 HTTP 协议的基本功能,能够向指定网站发送 GET 请求和 POST 请求。但是,在 Android ...
3. 将键值对数组封装成UrlEncodedFormEntity,然后设置到HttpPost对象的Entity中。 4. 执行HttpPost请求,获取服务器返回的HttpResponse对象。 5. 处理服务器返回的响应。 根据给定内容,我们可以构建一个通用的...
使用`HttpClient`,可以创建一个`HttpClient`实例,然后创建`HttpGet`或`HttpPost`对象,设置请求参数,最后通过`execute()`方法发送请求并获取响应。 3. **第三方库**: - **Volley**:Google推出的网络库,适合...
通过HttpGet和HttpPost对象设置请求,然后通过HttpClient执行请求。 3. OkHttp:这是一个高效、易用的网络库,广泛应用于Android开发。OkHttpClient提供简洁的API,支持GET和POST请求,以及异步回调等功能。 三、...