package alex.reader.ebook.bam;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
public class SimpleClient extends Activity {
private HttpParams httpParams;
private HttpClient httpClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_client);
EditText editText = (EditText) this.findViewById(R.id.EditText01);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("email", "firewings.r@gmail.com"));
params.add(new BasicNameValuePair("password", "954619"));
params.add(new BasicNameValuePair("remember", "1"));
params.add(new BasicNameValuePair("from", "kx"));
params.add(new BasicNameValuePair("login", "登 录"));
params.add(new BasicNameValuePair("refcode", ""));
params.add(new BasicNameValuePair("refuid", "0"));
Map params2 = new HashMap();
params2.put("hl", "zh-CN");
params2.put("source", "hp");
params2.put("q", "haha");
params2.put("aq", "f");
params2.put("aqi", "g10");
params2.put("aql", "");
params2.put("oq", "");
String url2 = "http://www.google.cn/search";
String url = "http://wap.kaixin001.com/home/";
getHttpClient();
editText.setText(doPost(url, params));
// editText.setText(doGet(url2, params2));
}
public String doGet(String url, Map params) {
/* 建立HTTPGet对象 */
String paramStr = "";
Iterator iter = params.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
paramStr += paramStr = "&" + key + "=" + val;
}
if (!paramStr.equals("")) {
paramStr = paramStr.replaceFirst("&", "?");
url += paramStr;
}
HttpGet httpRequest = new HttpGet(url);
String strResult = "doGetError";
try {
/* 发送请求并等待响应 */
HttpResponse httpResponse = httpClient.execute(httpRequest);
/* 若状态码为200 ok */
if (httpResponse.getStatusLine().getStatusCode() == 200) {
/* 读返回数据 */
strResult = EntityUtils.toString(httpResponse.getEntity());
} else {
strResult = "Error Response: "
+ httpResponse.getStatusLine().toString();
}
} catch (ClientProtocolException e) {
strResult = e.getMessage().toString();
e.printStackTrace();
} catch (IOException e) {
strResult = e.getMessage().toString();
e.printStackTrace();
} catch (Exception e) {
strResult = e.getMessage().toString();
e.printStackTrace();
}
Log.v("strResult", strResult);
return strResult;
}
public String doPost(String url, List<NameValuePair> params) {
/* 建立HTTPPost对象 */
HttpPost httpRequest = new HttpPost(url);
String strResult = "doPostError";
try {
/* 添加请求参数到请求对象 */
httpRequest.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
/* 发送请求并等待响应 */
HttpResponse httpResponse = httpClient.execute(httpRequest);
/* 若状态码为200 ok */
if (httpResponse.getStatusLine().getStatusCode() == 200) {
/* 读返回数据 */
strResult = EntityUtils.toString(httpResponse.getEntity());
} else {
strResult = "Error Response: "
+ httpResponse.getStatusLine().toString();
}
} catch (ClientProtocolException e) {
strResult = e.getMessage().toString();
e.printStackTrace();
} catch (IOException e) {
strResult = e.getMessage().toString();
e.printStackTrace();
} catch (Exception e) {
strResult = e.getMessage().toString();
e.printStackTrace();
}
Log.v("strResult", strResult);
return strResult;
}
public HttpClient getHttpClient() {
// 创建 HttpParams 以用来设置 HTTP 参数(这一部分不是必需的)
this.httpParams = new BasicHttpParams();
// 设置连接超时和 Socket 超时,以及 Socket 缓存大小
HttpConnectionParams.setConnectionTimeout(httpParams, 20 * 1000);
HttpConnectionParams.setSoTimeout(httpParams, 20 * 1000);
HttpConnectionParams.setSocketBufferSize(httpParams, 8192);
// 设置重定向,缺省为 true
HttpClientParams.setRedirecting(httpParams, true);
// 设置 user agent
String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2) Gecko/20100115 Firefox/3.6";
HttpProtocolParams.setUserAgent(httpParams, userAgent);
// 创建一个 HttpClient 实例
// 注意 HttpClient httpClient = new HttpClient(); 是Commons HttpClient
// 中的用法,在 Android 1.5 中我们需要使用 Apache 的缺省实现 DefaultHttpClient
httpClient = new DefaultHttpClient(httpParams);
return httpClient;
}
}
分享到:
相关推荐
在Android开发中,POST和GET是两种主要的HTTP请求方法,用于从服务器获取数据或向服务器发送数据。...通过理解这些基本概念和实践,开发者可以更好地在Android应用中利用POST和GET方法与服务器进行数据交互。
(示例为记录号,1或2,可选用HttpGet或HttpPost方法) 2.服务器端读取数据库对应记录,并将Response以JSON格式返回至移动端显示 三、使用说明: 1.请自行配置IIS(解压之后的Webroot文件夹),并修改源码中的URL 2....
本教程将深入探讨如何在Android中使用HTTP GET和POST方法进行网络请求,通过一个实际的HttpTest示例来阐述相关知识。 一、HTTP GET与POST的区别 1. GET:主要用来获取资源,它是幂等的,即多次执行同一个GET请求,...
`GetPostTest`可能是一个包含Android应用示例代码的类,它演示了如何使用GET和POST方法进行网络通信。在这个类中,你可能会看到如何创建HTTP请求,设置请求头,处理响应数据,以及异常处理等。例如,它可能包括使用`...
本文将详细讲解如何在Android端使用GET和POST方法提交数据到服务器,并结合传智播客张泽华Android视频54-57中的代码示例进行解析。 一、GET方法 GET方法是最简单的HTTP请求方式,常用于获取服务器上的资源。在...
在Android开发中,HTTP协议是应用层中广泛使用的通信协议,...总之,理解并掌握Android中的GET和POST请求对于任何Android开发者来说都是必备技能。通过实践和学习相关示例,你可以更好地应对各种网络数据交互的需求。
在Android开发中,与服务器进行数据交互是必不可少的步骤,主要通过HTTP协议的GET和POST方法来实现。本文将深入探讨这两种方法以及如何在Android后台实现它们。 首先,GET和POST是HTTP协议中最常见的两种请求方法。...
在Android应用开发中,用户身份验证是...综上所述,GET和POST在Android登录场景中各有优劣,开发者应根据实际需求和安全考虑选择合适的方法。在处理敏感信息时,POST通常更安全,而GET则适用于简单、无状态的查询操作。
通过GET或POST方法与天气API交互,获取JSON或XML格式的数据。例如,可以使用OpenWeatherMap等公开API,它们提供了实时天气和未来几天的预报。 在接收到网络响应后,我们需要解析返回的数据。如果是JSON,可以使用...
在Android开发中,HTTP通信是应用与服务器交互的重要方式,主要通过POST和GET两种方法进行数据传输。本篇文章将深入探讨Android中如何实现HTTP POST和GET请求,以及相关的上传和下载功能。 首先,GET和POST是HTTP...
在Android开发中,获取网络数据是常见的需求,通常我们通过HTTP协议发起GET或POST请求来实现。本教程将详细介绍如何在Android Studio中使用Java编写代码发起GET网络请求,适合初学者学习。 首先,理解GET请求的基本...
本文将深入探讨Android应用中如何实现GET与POST请求,并通过具体示例代码来帮助开发者更好地理解和掌握这两种HTTP请求方式。 #### GET请求 GET请求是一种用于获取资源的方法,通常用于从服务器获取数据。在Android...
总结来说,本项目通过具体的代码示例,深入浅出地介绍了Android中HTTPClient的使用,包括GET和POST请求的实现,以及文件上传的详细步骤。这对于任何需要进行网络通信的Android开发者来说,都是不可或缺的知识点。
这个名为"Android-Httpclient_Get_Post"的资源可能是一个示例项目或教程,展示了如何在Android应用中使用`HttpClient`进行网络数据的获取与提交。 首先,`HttpClient`是Apache的一个组件,它提供了对HTTP协议的全面...
在这个实例中,我们将探讨两种主要的HTTP请求方法:GET和POST,以及如何在Android客户端中使用它们。 1. GET方法: GET方法是最基础的HTTP请求方法,通常用于获取资源。在Android中,我们可以使用HttpURLConnection...
以下是一个简单的使用HttpURLConnection实现GET和POST请求的Java代码示例: ```java public class NetworkHelper { public static String makeGetRequest(String url) throws IOException { HttpURLConnection ...
总的来说,这个"Android-一个python的网页postget以及上传图片的工具类"提供了便捷的Python接口,帮助Android开发者更高效地进行网络通信,尤其是处理图片上传等复杂任务。通过合理地利用这样的工具,开发者可以将更...
在Android中,实现GET和POST请求,我们可以使用`HttpURLConnection`、`HttpClient`(已废弃但仍然可用)或者第三方库如Retrofit、Volley等。以下是一个基于HttpClient的简单示例: ```java // 创建HttpClient实例 ...
本篇将详细探讨如何封装Android中的HTTP请求,包括GET、POST和PUT方法,以便在项目中方便地调用。 首先,让我们了解HTTP的基本概念。HTTP(超文本传输协议)是一种无状态、基于文本的协议,主要负责Web应用程序的...
Android SDK提供了一个名为Apache HttpClient的库,使得开发者可以方便地实现HTTP请求,包括常见的GET和POST方法。下面我们将详细探讨这两种方法的使用。 ### GET 请求 GET请求是最简单的一种HTTP请求,通常用于从...