`
yaku2688
  • 浏览: 90299 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android Http Get/Post提交请求

阅读更多

 

首先添加访问Internet权限:

<uses-permission android:name="android.permission.INTERNET"/>

 示例代码:

 

public static boolean sendGetRequest(String path, 
		Map<String, String> params, String enc) throws Exception{

	StringBuilder sb = new StringBuilder(path);
	sb.append('?');
	//?method=save&title=12345678&timelength=26&
	//迭代Map拼接请求参数
	for(Map.Entry<String, String> entry : params.entrySet()){
		sb.append(entry.getKey()).append('=')
			.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
	}
	sb.deleteCharAt(sb.length()-1);//删除最后一个"&"
	
	URL url = new URL(sb.toString());
	HttpURLConnection conn = (HttpURLConnection)url.openConnection();
	conn.setRequestMethod("GET");
	conn.setConnectTimeout(5 * 1000);
	if(conn.getResponseCode()==200){
		return true;
	}
	return false;
}

public static boolean sendPostRequest(String path, 
		Map<String, String> params, String enc) throws Exception{
	
	// title=dsfdsf&timelength=23&method=save
	StringBuilder sb = new StringBuilder();
	if(params!=null && !params.isEmpty()){
		//迭代Map拼接请求参数
		for(Map.Entry<String, String> entry : params.entrySet()){
			sb.append(entry.getKey()).append('=')
				.append(URLEncoder.encode(entry.getValue(), enc)).append('&');
		}
		sb.deleteCharAt(sb.length()-1);//删除最后一个"&"
	}
	byte[] entitydata = sb.toString().getBytes();//得到实体的二进制数据
	URL url = new URL(path);
	HttpURLConnection conn = (HttpURLConnection)url.openConnection();
	conn.setRequestMethod("POST");
	conn.setConnectTimeout(5 * 1000);
	//如果通过post提交数据,必须设置允许对外输出数据
	conn.setDoOutput(true);
	//此两参数必须设置
	//Content-Type: application/x-www-form-urlencoded
	//Content-Length: 38
	conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
	conn.setRequestProperty("Content-Length", String.valueOf(entitydata.length));
	OutputStream outStream = conn.getOutputStream();
	outStream.write(entitydata);
	outStream.flush();
	outStream.close();
	if(conn.getResponseCode()==200){
		return true;
	}
	return false;
}

//HttpClient组件  SSL HTTPS Cookie
public static boolean sendRequestFromHttpClient(String path, 
		Map<String, String> params, String enc) throws Exception{

	List<NameValuePair> paramPairs = new ArrayList<NameValuePair>();
	if(params!=null && !params.isEmpty()){
		for(Map.Entry<String, String> entry : params.entrySet()){
			paramPairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
		}
	}
	//得到经过编码过后的实体数据
	UrlEncodedFormEntity entitydata = new UrlEncodedFormEntity(paramPairs, enc);
	HttpPost post = new HttpPost(path); //form
	post.setEntity(entitydata);
	DefaultHttpClient client = new DefaultHttpClient(); //浏览器
	HttpResponse response = client.execute(post);//执行请求
	if(response.getStatusLine().getStatusCode()==200){
		return true;
	}
	return false;
}

 

 

单元测试:

 

public void testSendGetRequest() throws Throwable{
	//?method=save&title=12345678&timelength=26
	Map<String, String> params = new HashMap<String, String>();
	params.put("method", "save");
	params.put("title", "yaku");
	params.put("timelength", "80");
	
	HttpRequest.sendGetRequest("http://192.168.1.2:8080/webserver/server/manage.do", params, "UTF-8");
}

public void testSendPostRequest() throws Throwable{
	Map<String, String> params = new HashMap<String, String>();
	params.put("method", "save");
	params.put("title", "胡汉三");
	params.put("timelength", "80");
	
	HttpRequest.sendPostRequest("http://192.168.1.2:8080/webserver/server/manage.do", params, "UTF-8");
}

public void testSendRequestFromHttpClient() throws Throwable{
	Map<String, String> params = new HashMap<String, String>();
	params.put("method", "save");
	params.put("title", "开天");
	params.put("timelength", "80");
	
	HttpRequest.sendRequestFromHttpClient("http://192.168.1.2:8080/webserver/server/manage.do", params, "UTF-8");
}

 

分享到:
评论

相关推荐

    Android总GET/POST请求服务器

    2. POST请求在Android中的实现: 对于POST请求,除了上述两种方式外,还需要设置请求方法并添加请求头。如下所示: ```java URL url = new URL("http://example.com/api"); HttpURLConnection conn = ...

    Android中Https请求get和post

    本篇将详细讲解Android中如何使用HTTPS进行GET和POST请求。 首先,HTTPS基于SSL/TLS协议,提供加密处理、服务器身份验证和消息完整性检查等功能。在Android中,我们通常会用到HttpURLConnection或者第三方库如...

    android http post/get

    Android HTTP POST请求** POST请求常用于向服务器发送数据,例如登录、注册等场景。同样,我们可以使用HttpURLConnection或者第三方库。以下是一个使用HttpURLConnection的POST请求示例: ```java URL url = new ...

    HTTP GET/POST传递参数

    介绍如何通过HttpClient模块来创建Http连接,并分别以Http GET与Http POST方法来传递参数,连接之后取回Web Server的返回网页结果。重点是如何使用HttpClient的模块来完成Http的请求与应答。 分享参考自Android SDK...

    引用开源框架通过AsyncHttpClient处理get/post请求

    2.发送post请求,(get请求参数含义:请求的url地址;异步请求的handler) 3.封装请求参数 4.在成功请求里(status:响应状态码,headers:响应头信息,responseBody相应内容的字节码)设置控件内容

    Android网络框架Retrofit2使用封装:Get/Post/文件上传/下载

    框架主要包括:Get请求、Post请求、文件上传、文件下载。效果图及讲解见:https://blog.csdn.net/ahuyangdong/article/details/82760382。github源码:https://github.com/ahuyangdong/RetrofitFrame

    android 的OkHttp3网络的POST和GET请求

    以上就是关于Android的OkHttp3框架中GET和POST请求的基本使用方法,通过这个库,开发者可以高效、安全地进行网络通信。在实际项目中,可以根据需求进行更复杂的定制和优化,例如设置超时、重试策略等。希望这个概述...

    android 后台 get和post请求数据

    总结,Android后台发送GET和POST请求主要涉及HTTP协议的使用、数据编码、网络请求库的选择以及异步处理。理解这些知识点对于开发能与服务器进行有效通信的Android应用至关重要。在处理过程中,要注意数据的安全性和...

    Android端使用get post 方法提交数据到服务器demo

    Android中使用HttpPost或OkHttp的RequestBody来发送POST请求。这里展示一个HttpPost的例子: ```java HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(...

    Android 通过get和post方法访问网络demo

    此demo演示android通过get和post请求方法同服务器交互,测试需要tomcat,具体参考 http://blog.csdn.net/youmingyu/article/details/52524538

    android发送get,post请求工具类

    android发送get,post请求工具类

    Android Get和Post方式访问网络

    在Android中,我们可以使用`HttpURLConnection`或`OkHttp`库来实现POST请求。以下是一个`HttpURLConnection`的示例: ```java URL url = new URL("http://example.com"); HttpURLConnection connection = ...

    android基础 - POST GET

    - GET请求可能导致重复提交,POST请求更适用表单提交。 - GET请求可以被搜索引擎抓取,可能影响SEO,而POST请求则不会。 - 数据传输时,确保敏感信息已加密,防止中间人攻击。 通过理解这些基本概念和实践,开发者...

    Android Studio发起GET网络请求

    在Android开发中,获取网络数据是常见的需求,通常我们通过HTTP协议发起GET或POST请求来实现。本教程将详细介绍如何在Android Studio中使用Java编写代码发起GET网络请求,适合初学者学习。 首先,理解GET请求的基本...

    Retrofit网络请求GET请求POST请求

    在实际项目中,GET请求通常用于获取公开的或者无需身份验证的数据,而POST请求则用于提交数据、登录、注册等操作,可能需要携带用户凭据或其他敏感信息。确保在处理POST请求时,正确封装和验证请求数据,以防止安全...

    Volley使用,包含get、post请求,获取String/JsonObject/JsonArray数据(android客户端+java服务器端)

    本教程将详细介绍如何使用Volley进行HTTP的GET和POST请求,以及如何处理获取到的String、JsonObject和JsonArray数据。 一、Volley简介 Volley的核心优势在于其强大的缓存机制、线程池管理和请求队列,能有效处理...

    Http(get)请求数据Android Studio使用HttpClient

    请注意,本教程不涉及POST请求,POST主要用于向服务器提交数据。 ## 1. Android HttpClient介绍 `HttpClient`是Apache HTTP组件的一部分,它为Android应用程序提供了一个功能丰富的HTTP客户端实现。在Android ...

    安卓HTTP(POST/GET)测试工具,支持定时请求

    目前仅支持GET、POST 可以自定义循环请求次数、自定义间隔时间 支持定时请求 自定义协议头(HTTP Headers) 支持cookie 支持复制删除请求返回的内容 用途介绍:看标题应该都知道了,自己写的,简单的一个小工具,...

    android httpget post

    对于Android开发者来说,了解如何正确处理HTTP GET和POST请求是非常重要的。在上述的压缩包文件中,"EX19_01HttpGet"可能是关于GET请求的示例代码,而"EX19_02HttpPostConnection"则可能包含POST请求的实现。通过...

    android 平台 Http ge和post请求工具

    简单方便的android 端http get 和post 请求 测试端口数据用

Global site tag (gtag.js) - Google Analytics