首先添加访问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");
}
分享到:
相关推荐
2. POST请求在Android中的实现: 对于POST请求,除了上述两种方式外,还需要设置请求方法并添加请求头。如下所示: ```java URL url = new URL("http://example.com/api"); HttpURLConnection conn = ...
本篇将详细讲解Android中如何使用HTTPS进行GET和POST请求。 首先,HTTPS基于SSL/TLS协议,提供加密处理、服务器身份验证和消息完整性检查等功能。在Android中,我们通常会用到HttpURLConnection或者第三方库如...
Android HTTP POST请求** POST请求常用于向服务器发送数据,例如登录、注册等场景。同样,我们可以使用HttpURLConnection或者第三方库。以下是一个使用HttpURLConnection的POST请求示例: ```java URL url = new ...
介绍如何通过HttpClient模块来创建Http连接,并分别以Http GET与Http POST方法来传递参数,连接之后取回Web Server的返回网页结果。重点是如何使用HttpClient的模块来完成Http的请求与应答。 分享参考自Android SDK...
2.发送post请求,(get请求参数含义:请求的url地址;异步请求的handler) 3.封装请求参数 4.在成功请求里(status:响应状态码,headers:响应头信息,responseBody相应内容的字节码)设置控件内容
框架主要包括:Get请求、Post请求、文件上传、文件下载。效果图及讲解见:https://blog.csdn.net/ahuyangdong/article/details/82760382。github源码:https://github.com/ahuyangdong/RetrofitFrame
以上就是关于Android的OkHttp3框架中GET和POST请求的基本使用方法,通过这个库,开发者可以高效、安全地进行网络通信。在实际项目中,可以根据需求进行更复杂的定制和优化,例如设置超时、重试策略等。希望这个概述...
总结,Android后台发送GET和POST请求主要涉及HTTP协议的使用、数据编码、网络请求库的选择以及异步处理。理解这些知识点对于开发能与服务器进行有效通信的Android应用至关重要。在处理过程中,要注意数据的安全性和...
Android中使用HttpPost或OkHttp的RequestBody来发送POST请求。这里展示一个HttpPost的例子: ```java HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(...
此demo演示android通过get和post请求方法同服务器交互,测试需要tomcat,具体参考 http://blog.csdn.net/youmingyu/article/details/52524538
android发送get,post请求工具类
在Android中,我们可以使用`HttpURLConnection`或`OkHttp`库来实现POST请求。以下是一个`HttpURLConnection`的示例: ```java URL url = new URL("http://example.com"); HttpURLConnection connection = ...
- GET请求可能导致重复提交,POST请求更适用表单提交。 - GET请求可以被搜索引擎抓取,可能影响SEO,而POST请求则不会。 - 数据传输时,确保敏感信息已加密,防止中间人攻击。 通过理解这些基本概念和实践,开发者...
在Android开发中,获取网络数据是常见的需求,通常我们通过HTTP协议发起GET或POST请求来实现。本教程将详细介绍如何在Android Studio中使用Java编写代码发起GET网络请求,适合初学者学习。 首先,理解GET请求的基本...
在实际项目中,GET请求通常用于获取公开的或者无需身份验证的数据,而POST请求则用于提交数据、登录、注册等操作,可能需要携带用户凭据或其他敏感信息。确保在处理POST请求时,正确封装和验证请求数据,以防止安全...
本教程将详细介绍如何使用Volley进行HTTP的GET和POST请求,以及如何处理获取到的String、JsonObject和JsonArray数据。 一、Volley简介 Volley的核心优势在于其强大的缓存机制、线程池管理和请求队列,能有效处理...
请注意,本教程不涉及POST请求,POST主要用于向服务器提交数据。 ## 1. Android HttpClient介绍 `HttpClient`是Apache HTTP组件的一部分,它为Android应用程序提供了一个功能丰富的HTTP客户端实现。在Android ...
目前仅支持GET、POST 可以自定义循环请求次数、自定义间隔时间 支持定时请求 自定义协议头(HTTP Headers) 支持cookie 支持复制删除请求返回的内容 用途介绍:看标题应该都知道了,自己写的,简单的一个小工具,...
对于Android开发者来说,了解如何正确处理HTTP GET和POST请求是非常重要的。在上述的压缩包文件中,"EX19_01HttpGet"可能是关于GET请求的示例代码,而"EX19_02HttpPostConnection"则可能包含POST请求的实现。通过...
简单方便的android 端http get 和post 请求 测试端口数据用