首先添加访问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请求和Android中android-async-http-master插件的使用。
介绍如何通过HttpClient模块来创建Http连接,并分别以Http GET与Http POST方法来传递参数,连接之后取回Web Server的返回网页结果。重点是如何使用HttpClient的模块来完成Http的请求与应答。 分享参考自Android SDK...
框架主要包括:Get请求、Post请求、文件上传、文件下载。效果图及讲解见:https://blog.csdn.net/ahuyangdong/article/details/82760382。github源码:https://github.com/ahuyangdong/RetrofitFrame
2.发送post请求,(get请求参数含义:请求的url地址;异步请求的handler) 3.封装请求参数 4.在成功请求里(status:响应状态码,headers:响应头信息,responseBody相应内容的字节码)设置控件内容
Android中Https请求get和post 博客地址:http://blog.csdn.net/lsf1025995457/article/details/51794377
此demo演示android通过get和post请求方法同服务器交互,测试需要tomcat,具体参考 http://blog.csdn.net/youmingyu/article/details/52524538
android发送get,post请求工具类
这个是关于android的OkHttp3框架的代码实例,里面包括POST和GET请求,请大家多多指教。
android 后台 post和get 请求数据。定义接收数据编码
Android实用的网络请求框架,满足了我几个项目的需求,欢迎大家评论,这里给代码
andriod Volley的HTTP网络通信,包含get、post请求,获取String/JsonObject/JsonArray数据(android客户端+java服务器端)
简单方便的android 端http get 和post 请求 测试端口数据用
目前仅支持GET、POST 可以自定义循环请求次数、自定义间隔时间 支持定时请求 自定义协议头(HTTP Headers) 支持cookie 支持复制删除请求返回的内容 用途介绍:看标题应该都知道了,自己写的,简单的一个小工具,...
Android Studio使用HttpClient请求数据(get请求)不包括post请求
简单的http post请求,http get请求实例,希望可以帮到你。
eclipse 使用http进行请求.net编写的服务端,进行get和post方法进行提交数据
android实现登陆和注册的前后台框架,利用http的post和get进行请求,请求方式已经封装完善.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
android 网络请求框架,包涵get,post请求,图片上传,图片上传包涵表单上传,及基于okhttp封装的请求方法
基于OkHttp链式调用的网络请求库,支持同步的GET 、POST;异步的GET、POST;
4)对请求的数据根据URL进行缓存到本地sqlite数据库中(我刚刚想起了 post请求的时候需要对缓存url及本地数据存取做修改才可以正常用 如果不想进行修改可以用get形式) 5)本demo可以直接运行 本来想测试protobuf...