首先,注意一点,连接服务器都不在主线程中进行,因为连接服务需要时间,这里简要介绍相关实现
public static HttpClient hc = null;
public static String server1 = "http://192.168.6.74:8080/testHttpClient2/first";
private class DownloadPass extends Thread{
try {
hc = new DefaultHttpClient();
HttpPost httppost = new HttpPost(server1);
httppost.addHeader("Content-Type", "application/json");
httppost.addHeader("User-Agent", "imgfornote");
String model = android.os.Build.MODEL;
SharedPreferences preference0 = getSharedPreferences("serialNo", MODE_PRIVATE);
String serialNo = preference0.getString("serialNo", "0");
JSONObject obj = new JSONObject();
obj.put("serialNo", serialNo);
httppost.setEntity(new StringEntity(obj.toString()));
HttpResponse response;
response = hc.execute(httppost);
int code = response.getStatusLine().getStatusCode();
if(code==200){
str1 = EntityUtils.toString(response.getEntity());
}
if(str1!=null&&!str1.equals("")){
obj = new JSONObject(str1);
String url = obj.getString("url");
String updated = obj.getString("updated");
String serialNo1 = obj.getString("serialNo");
Intent intent = new Intent(Loading.this,DownloadPassService.class);
intent.putExtra("serialNo", serialNo1);
intent.putExtra("url", url.trim());
startService(intent);
}else{
SharedPreferences preference = getSharedPreferences("pass", MODE_PRIVATE);
preference.edit().clear().putBoolean("pass", true).commit();
}
} catch(ClientProtocolException e){
e.printStackTrace();
} catch (IOException e) {
mProgressHandler.sendEmptyMessage(20);
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally
{
//postMethod.releaseConnection();
shutdownHttpClient();
}
private void shutdownHttpClient() {
if (hc != null && hc.getConnectionManager() != null) {
hc.getConnectionManager().shutdown();
}
}
}
- 浏览: 142305 次
- 性别:
- 来自: 广州
文章分类
最新评论
发表评论
-
软件版本命名规范
2017-04-24 16:08 3771.版本命名规范 软件版本号有四部分组成,第一部分 ... -
Hibernate Criteria条件Restrictions.or查询 循环多个or条件
2017-04-18 17:19 529Hibernate 条件or查询 循环多个or条件 今天公 ... -
java代码规范
2017-03-27 17:15 3871、去除没有用到的类引用,eclipse里面Ctrl+Shi ... -
java导出excel文件
2017-01-16 17:28 363一、引言 在Java Web开发中经常涉及到报表,最近做 ... -
jquery请求servlet实现ajax异步请求
2016-12-16 16:42 319$.ajax()方法: function send ... -
jq获取ckeditor中textarea里面的内容
2016-12-16 16:38 894CKEditor 是著名的 HTML 编辑器,IBM、Ora ... -
Myeclipse8.5安装JBPM插件
2016-02-25 16:36 528使用jbpm时,有一个东东叫做图形化流程设计器,即Graph ... -
myeclipse项目加入junit单元测试
2015-06-25 13:52 8111、右键项目,选择"configure bui ... -
Java中使用Timer和TimerTask实现多线程
2015-06-05 14:24 470Timer是一种线程设施,用于安排以后在后台线程中执行的任务 ... -
Spring定时器配置
2015-06-05 14:23 344Spring 中配置定时器 <bean id=" ... -
java执行bat和shell
2014-11-19 18:34 13521. 请教关于JAVA在WIN下执行.BAT文件的问题 -& ... -
java Runtime执行shell脚本并传递参数,完成mysql数据库表导出
2014-11-19 18:30 1161编写导出sql文件的shell脚本,在/home/amtcl ... -
java设置文件权限
2014-11-13 15:06 907是 -
Java生成随机字符串的代码
2014-11-04 14:34 502public static String getRandomS ... -
windows下安装使用redis(java代码示例)
2014-11-04 11:41 1121一、server端安装 1、下载 https ... -
MD5带盐值的java加密算法
2014-10-28 17:16 760import java.security.MessageDi ... -
JSON传输图片帮助类
2014-10-14 18:00 833原理:将图片转换为字节流,再将字节流用base64编码,将编 ... -
httpClient4.0
2014-10-14 16:18 551HttpClient程序包是一个实现了 HTTP 协议的客户 ... -
HttpEntity类型有哪些
2014-10-14 16:12 1735BasicHttpEntity 代表底层流的基本实 ... -
spring注解讲解
2014-09-24 11:59 363使用Spring注解来注入属性 1.1. 使用注解以前我们是怎 ...
相关推荐
在Android中,使用HTTPClient进行POST请求时,可以通过`HttpPost`对象设置`EntityEnclosingRequestBase`的`setEntity()`方法来添加请求实体,包含要发送的数据。 3. **HTTPClient文件上传**:在Android中,...
2. HttpPost:HttpPost是HttpClient库中的一个类,用于执行HTTP POST请求。POST请求常用于向服务器发送数据,例如提交表单或上传文件。HttpPost对象允许我们设置请求头、URL以及请求体内容。 3. HttpGet:HttpGet是...
总结来说,MFC的HttpClient使得开发者能够方便地与HTTP服务器交互,执行GET和POST请求。通过理解HTTP协议的基本原理,结合MFC的WinInet库,你可以构建自己的HTTP客户端功能,实现各种网络通信需求。在实际编程时,...
在Android开发中,与服务器进行通信是不可或缺的一部分,而`HttpClient`和`HttpPost`是Java中常用的HTTP客户端库,它们允许应用通过HTTP协议发送请求并接收响应。在Android早期版本中,Android SDK内置了对`...
CloseableHttpResponse response = httpClient.execute(httpPost); String responseBody = EntityUtils.toString(response.getEntity()); System.out.println(responseBody); httpClient.close(); } } ``` ...
HTTPClient则是发起HTTP请求的端,它负责构造请求报文,连接到服务器,发送请求,然后接收并解析服务器返回的响应。在VC++中,实现HTTP Client同样需要理解套接字编程,同时还需要了解HTTP请求和响应的格式,以便...
5. 执行请求:通过HttpClient的`execute`方法发送请求,并获取响应,`CloseableHttpResponse response = httpClient.execute(httpPost);` 6. 处理响应:检查响应状态码,读取响应内容,如`StatusLine statusLine = ...
《构建Java HTTP服务器:HttpServlet、HttpClient与HTTPS详解》 在IT行业中,HTTP服务器是互联网应用的核心组件之一,用于接收并响应HTTP请求。本项目"HttpServer.zip"提供了一个独特的实现,它是一个全网唯一的...
1. **发起HTTP请求**:你可以通过HttpClient创建HttpGet、HttpPost等对象,设置URL、请求头和请求体,然后通过execute()方法发送请求。 2. **处理响应**:HttpClient返回的HttpResponse对象包含了服务器的响应状态码...
HttpResponse response = httpClient.execute(httpPost); String responseBody = EntityUtils.toString(response.getEntity()); System.out.println("Response body: " + responseBody); } } ``` 在这个例子中...
在Android开发中,HTTP通信是应用与服务器交互的基础,`HttpClient`和`HttpPost`就是其中常用的两个类,它们属于Apache的HTTP组件,虽然在Android API level 23之后被标记为过时,但由于其功能强大和灵活性高,仍被...
本实例将详细介绍如何在Android环境中使用HttpPost请求连接服务器,并处理相关的异常情况,如网络连接状态判断和请求超时。 首先,我们需要在Android应用中引入必要的库,通常我们会使用Apache HttpClient库来实现...
首先,需要初始化HttpClient实例,设置连接参数,然后创建HttpPost对象,指定服务器URL。接着,将XML字符串转换为HttpEntity,作为请求体: ```java CloseableHttpClient httpClient = HttpClients.createDefault()...
HttpResponse response = httpClient.execute(httpPost); // 处理响应 int statusLine = response.getStatusLine().getStatusCode(); System.out.println("Status Code: " + statusLine); // 关闭连接 ...
然后,创建一个HTTPClient实例,并设置必要的请求参数,如URL、HTTP方法(GET或POST)。这里以GET请求为例: ```java import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org...
response = httpClient.execute(httpPost); ``` ### 上传文件 HttpClient支持文件上传,通常使用`MultipartEntityBuilder`构建多部分实体来实现: ```java File file = new File("/path/to/your/file"); ...
CloseableHttpResponse response = httpClient.execute(httpPost); // 同样处理响应... ``` 对于图片上传,HttpClient提供了一种通过`MultipartEntityBuilder`来构建多部分实体的方法,可以方便地上传文件: ```...
同时,HttpClient依赖于HttpCore库,这是Apache提供的基础HTTP协议处理组件,httpcore-4.4.1.jar即为该组件的4.4.1版本,提供了HTTP连接管理、请求/响应模型等核心功能。 **一、HttpClient基本概念** 1. **...
HttpResponse response = httpClient.execute(httpPost); ``` 上述代码展示了如何使用HttpClient和HttpMime创建一个POST请求,上传本地文件。 5. **最佳实践**: - 遵循HTTP/1.1标准,避免不必要的重试和连接...