0.HttpClient
作用:执行Http请求的类,可以处理Cookie,身份验证,链接管理和其他。。
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;
}
1.Get
StringBuffer path = new StringBuffer("www.baidu.com");
path.append("?");
path.append("name=zhangshan");
try {
path.append("password=" + URLEncoder.encode("1234", ""));
HttpGet httpGet = new HttpGet(path.toString());
HttpResponse reponse = new DefaultHttpClient().execute(httpGet);
if (reponse.getStatusLine().getStatusCode() == 200) {
String result = EntityUtils.toString(reponse.getEntity());
String str = new String(result.getBytes("ISO_8859_1"), "utf-8");
System.out.println(str);
//return str;
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2. Post
String url = " http://192.168.0.131:8888/kon_service/AddQuestionServlet";
HttpClient client = new DefaultHttpClient();
HttpParams httpParams = client.getParams();
//设置网络超时参数
HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);
HttpPost request = new HttpPost(url);
//设置HTTP POST请求参数必须用NameValuePair
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("title", ""));
params.add(new BasicNameValuePair("content",""));
params.add(new BasicNameValuePair("resolve",""));
params.add(new BasicNameValuePair("u_id",""));
try{
//设置Http Post请求参数
request.setEntity( new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse response = new DefaultHttpClient().execute(request);
if(response.getStatusLine().getStatusCode()==200){
String msg = EntityUtils.toString(response.getEntity());
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
Intent i = new Intent(this,TopActivity.class);
startActivity(i);
}
}catch(Exception e){
e.printStackTrace();
}
分享到:
相关推荐
理解并熟练运用POST和GET方法,以及选择合适的网络库,对于Android开发者来说至关重要。这不仅涉及到数据的正确传输,也关乎用户体验和应用性能。在实际项目中,还需要根据需求和设备兼容性灵活选择合适的方法。
以下是Android中使用POST和GET提交数据的三种常见方式的详细解释: 1. **普通方法实现**: - GET提交:GET请求将参数附加到URL路径中,如示例代码所示,通过`&`符号分隔不同的参数。这种方式简单易用,但因为数据...
XUtils是一款老牌的Android网络请求库,虽然现在更多的人选择使用Retrofit或OkHttp等现代库,但XUtils依然有其便捷之处,尤其是在处理简单的GET、POST请求时。在Kotlin中,我们可以使用其提供的注解来定义网络请求,...
这些接口定义了客户端与服务器间的通信协议,如GET(获取数据)、POST(新增数据)、PUT(更新数据)和DELETE(删除数据)。接口的设计应遵循统一的规范,确保安全性和可扩展性。 4. **网络请求库**:Android应用...
事件类通常是普通的Java类,标记为`@android.support.annotation.NonNull`或`@NonNull`,并且不需要实现任何特定的接口。例如,创建一个简单的登录成功事件: ```java public class LoginSuccessEvent { private ...
EventBus.getDefault().post(new MyEvent("Hello, EventBus!")); ``` ### 4. 订阅优先级和粘性事件 - **订阅优先级**:通过`@Subscribe(priority = int)`注解设置订阅者的优先级,数值越大优先级越高。 - **粘性...
6.32 ListView普通列表控件的使用 6.33 适配器结合ListView控件的使用 七、百度地图实战开发 7.1 百度地图搭建开发环境 7.2 百度地图覆盖物的描述 7.3 百度地图多个覆盖物的描述 7.4 根据范围和检索词发起范围检索 ...
- **HttpURLConnection与HttpClient**:了解两者在网络请求中的区别,以及如何使用它们发送GET和POST请求。 - **OkHttp和Retrofit**:学习现代的网络请求库,理解其优势和使用方式。 - **WebSocket**:理解...
在通信过程中,Android应用主要采用HTTP协议与服务器进行数据交换,HTTP请求主要有两种方式:GET和POST。GET方法用于从服务器获取数据,而POST方法则用于向服务器提交数据。 在设计Android应用时,开发者需要考虑...
这个工具库可能包含了一套封装好的网络请求接口,如使用Retrofit或OkHttp进行网络调用,提供简单易用的API供开发者进行GET、POST等操作。 - 可能还提供了异步处理和回调机制,以避免阻塞主线程,保证UI的流畅性。 ...
本章将涵盖基本的HTTP请求(如GET和POST)、使用OkHttp库进行网络请求、JSON数据解析以及WebSocket通信。同时,我们也会讨论Android的网络访问限制和权限管理。 **第12章:多线程与异步处理** Android应用的性能...
1. **HTTP请求**:使用HttpURLConnection或OkHttp发送GET、POST请求。 2. **JSON解析**:学习使用Gson或Jackson库解析JSON数据。 3. **异步处理**:理解AsyncTask、Handler和Thread池,处理网络操作的异步需求。 ...
它能够记录下所有通过HTTP或HTTPS协议的网络通信,包括请求方法(GET、POST等)、URL、请求头、响应状态码以及响应体等关键信息。这对于排查网络问题、优化应用性能、防止数据泄露等问题具有极大的价值。 其次,...
1. 创建网络请求:根据API文档,构造合适的URL,确定请求方法(GET、POST等)。 2. 设置请求头:如Content-Type、Authorization等,用于传递身份信息或指定数据格式。 3. 发送请求:使用HTTP库发送请求,可能需要将...
在EventBus中,事件(Event)是一个普通的Java对象,发布者(Publisher)通过`EventBus.post()`方法发布事件,而订阅者(Subscriber)通过`@Subscribe`注解的方法来接收并处理事件。 以下是使用EventBus的一些核心...
发布普通事件通常使用 `EventBus.getDefault().post(event)` 方法,其中 `event` 是你要发送的事件对象。事件对象可以是任何自定义类型,但通常是一个简单的 Java 类,包含需要传递的数据。 #### 2.2 订阅普通事件 ...
1. **RESTful编程**:REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,使用URI(Uniform Resource Identifier)来定位资源,通过HTTP方法(如GET、POST、PUT、...
这些库简化了网络请求的创建和管理,可以方便地发送GET、POST等请求,并处理响应数据。 3. **JSON解析**: 服务端返回的数据通常是JSON格式,Android客户端需要解析这些数据。可以使用Gson库将JSON字符串转化为Java...