下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android中怎么利用GET方法实现网络传值
本篇文章给大家分享的是有关Android中怎么利用GET方法实现网络传值,在下觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着在下一起来看看吧。WEB应用在这里,我只建立一个简单的Servlet,用来接收安卓端发来的信息。package
deu.hpu.servlet;
import
java.io.IOException;
import
java.io.PrintWriter;
import
javax.servlet.ServletException;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
public
class
ManagerServlet
extends
HttpServlet
{
public
void
doGet(HttpServletRequest
request,
HttpServletResponse
response)
throws
ServletException,
IOException
{
String
title=request.getParameter("title");
title=new
String(title.getBytes("ISO8859-1"),"UTF-8");
String
timelength=request.getParameter("timelength");
timelength=new
String(timelength.getBytes("ISO8859-1"),"UTF-8");
System.out.println("视频名称"+title);
System.out.println("时长"+timelength);
}
public
void
doPost(HttpServletRequest
request,
HttpServletResponse
response)
throws
ServletException,
IOException
{
doGet(request,response);
}
}
安卓客户端在这里,我要建立一个输入框界面,让用户吧数据输入进去,然后我再将数据通过get方式提交。
XML界面(两个输入框,一个按钮):<LinearLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="com.example.newsmanager.MainActivity"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/title"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/title"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/timelength"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numeric="integer"
android:id="@+id/timelength"/>"
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:onClick="save"
android:text="@string/button"
/>
</LinearLayout>之后我要在Activity里将界面的编辑框里面的值传到WEB端
主Activity(这里的线程问题在前面讲过):package
com.example.newsmanager;
import
com.example.service.NewsService;
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.EditText;
import
android.widget.Toast;
public
class
MainActivity
extends
Activity
{
private
EditText
titletext;
private
EditText
lengthtext;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
titletext=(EditText)
findViewById(R.id.title);
lengthtext=(EditText)
findViewById(R.id.timelength);
}
boolean
flag;
public
void
save(View
view)
throws
Exception{
//开启线程
new
Thread(new
Runnable()
{
String
title=titletext.getText().toString();
String
length=lengthtext.getText().toString();
@Override
public
void
run()
{
boolean
result;
try
{
result
=
NewsService.save(title,length);
if(result){
//返回主线程显示
runOnUiThread(new
Runnable()
{
@Override
public
void
run()
{
Toast.makeText(getApplicationContext(),
R.string.success,
1).show();
}
});
}else{
runOnUiThread(new
Runnable()
{
@Override
public
void
run()
{
Toast.makeText(getApplicationContext(),
R.string.error,
1).show();
}
});
}
}
catch
(Exception
e)
{
//
TODO
Auto-generated
catch
block
e.printStackTrace();
}
}
}).start();
}
}上面代码中的NewsService类以及save方法(这个类是用来处理信息,然后以get方式传往WEB端)。这里我要说一句,我们采用的GET方法,是将需要传递给WEB端的数据放在URL路径,然后WEB端进行解析得到的,所以我们要在方法中将URL路径给拼凑完成然后传给WEB端(里面的IP是我tomcat服务器本机的ip)。package
com.example.service;
import
.HttpURLConnection;
import
.URL;
import
.URLEncoder;
import
java.util.HashMap;
import
java.util.Map;
public
class
NewsService
{
/*
*
保存数据
*
title
标题
*
length
时长
*
*/
public
static
boolean
save(String
title,
String
length)
throws
Exception{
String
path="2:8080/videonews/ManagerServlet";
Map<String,String>
map=new
HashMap<String,String>();
map.put("title",
title);
map.put("timelength",
length);
return
sendGETRequest(path,map,"UTF-8");
}
/*
*
发送Get请求
*
path请求路径
*
map请求参数
*
*/
private
static
boolean
sendGETRequest(String
path,
Map<String,
String>
map,String
ecoding)
throws
Exception{
/*将路径拼成2:8080/videonews/ManagerServlet?title=XXX&timelength=90*/
StringBuilder
url=new
StringBuilder(path);
url.append("?");
//map迭代器Entry<Key,
Value>
for(Map.Entry<String,
String>
entry:map.entrySet()){
url.append(entry.getKey()).append("=");
//ecoding是上面传来的“UTF-8”,为了防止中文乱码
url.append(URLEncoder.encode(entry.getValue(),
ecoding));
url.append("&");
}
url.deleteCharAt(url.length()-1);
URL
url2=new
URL(url.toString());
HttpURLConnection
conn=(HttpURLConnection)
url2.openCo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年聘请律师代理合同
- 2024年长沙客运从业资格证考试试题库答案
- 2024年龙门吊拆除合同
- 2024年成都道路客运输从业资格证到期换证考试
- 个人二手车买卖标准合同范本2024年
- 2019年江苏宿迁中考满分作文《我给母亲留下的》
- 2024年简单办公室租赁合同模板
- 2024年销售战略合作协议
- 个人财务顾问协议书2024年
- 2024年印刷合同(三)
- 2022年一年级数学上册期中复习计划
- 城市建筑垃圾分类培训课件
- 土壤分析技术规范(第二版)
- 既有桥横跨铁路拆除施工方案(图文并茂)
- (完整版)10-诊断研究设计
- 深蓝色典雅复古中国风商务演示通用PPT模板
- T∕CAME 1-2019 家庭式产房建设标准
- 背越式跳高----过杆技术 教案
- 东方财富通指标说明书
- 辛弃疾(课堂PPT)
- 探究电流与电压电阻的关系11
评论
0/150
提交评论