【移动应用开发技术】Android中怎么利用GET方法实现网络传值_第1页
【移动应用开发技术】Android中怎么利用GET方法实现网络传值_第2页
【移动应用开发技术】Android中怎么利用GET方法实现网络传值_第3页
【移动应用开发技术】Android中怎么利用GET方法实现网络传值_第4页
【移动应用开发技术】Android中怎么利用GET方法实现网络传值_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论