`

get

 
阅读更多



  服务端接收客服端数据,通过http协议

之前的两个例子都是客服端解析服务端的数据,然而在实际应用中,客服端发送数据给服务端也是一个很重要的方面。比如客服端输入用户名和密码后,要给服务端接收,最后在数据库里面去查找看是否有这个用户
  本文以get方式发送数据给服务端

 


  服务器端

 

   就是一个Servlet

 

 

package com.lin.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 /*
  * 1、get方式提交请求参数,没有对中文参数编码
  * tomcat默认iso8859编码,转成二进制数据
  */
public class ManageServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public ManageServlet() {
       
    }

 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String title= request.getParameter("title");
		String timelength= request.getParameter("length");
		/*
		 * 保存到数据库中
		 */
		 System.out.println("视频"+title);
		 System.out.println("时长"+timelength);
	}

	 
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		doGet(request, response);
	}

}

 

 

   在浏览器里输入:http://localhost:8080/videonews/ManageServlet?title=woshizhu&length=23

Servlet会打印

视频woshizhu
时长23

那么,如何在android客服端完成这个效果呢

也就是说,如何在手机上自己输入两项参数,然后手机的数据就会被Servlet接收呢?

好,我们新建一个android工程

layout.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<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:id="@+id/timelength"
android:numeric="integer"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button"
android:text="@string/button"
/>
</LinearLayout>

 

Activity

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import com.lin.servce.NewsService;
 
public class NewsmanageActivity extends Activity {
    /** Called when the activity is first created. */
	public EditText etitle;
	public EditText etimelength;
	public Button button;
	boolean result;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        init();
       button.setOnClickListener(new View.OnClickListener() {
		
		public void onClick(View v) {
			// TODO Auto-generated method stub
			new Thread(new Runnable() {
				
				public void run() {
					// TODO Auto-generated method stub
					String title=etitle.getText().toString();
			    	String length=etimelength.getText().toString();
			    	  result=NewsService.save(title,length);
					 Message msg = new Message();
                     msg.what = 1;
                      handler.sendMessage(msg);  
				}
			}){}.start();
		}
	});
    }
 Handler handler=new Handler(){
    	
    	public void handleMessage(Message msg) {
    		  if (msg.what == 1) {
    			  if(result){
   		    		Toast.makeText(getApplicationContext(), R.string.success, 2).show();
    		    	}else{
    		    		Toast.makeText(getApplicationContext(), R.string.error, 2).show();
    		
    		    	}
	            }
    	};
    	
    };
    private void init() {
		// TODO Auto-generated method stub
		etitle=(EditText) findViewById(R.id.title);
		etimelength=(EditText) findViewById(R.id.timelength);
		button=(Button) findViewById(R.id.button);
		
	}
}

 

save方法两个参数为title和length

 

package com.lin.servce;

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

public class NewsService {
//通过http把数据发到web应用里,服务器对路径长度的限制get post
	public static boolean save(String title, String length) {
 		String path="http://192.168.189.1:8080/videonews/ManageServlet";
 		Map<String,String> params=new HashMap<String,String>();
		params.put("title", title);
		params.put("length", length);
		 
//保存到map集合
		try {
			return sendGETRequest(path,params,"UTF-8");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

//得到路径
private static boolean sendGETRequest(String path, Map<String, String> params, String encoding)throws Exception {
	// TODO Auto-generated method stub
	StringBuilder builder=new StringBuilder(path);
	builder.append('?');
	for(Map.Entry<String, String> entry: params.entrySet()){
		builder.append(entry.getKey()).append("=");
		builder.append(URLEncoder.encode(entry.getValue(),encoding));
		builder.append("&");//多个这个没有影响
	}
	builder.deleteCharAt(builder.length()-1);//最后一个字符的索引
	System.out.println("url"+builder);
	HttpURLConnection conn=(HttpURLConnection) new URL(builder.toString()).openConnection();
	conn.setConnectTimeout(5000);
	conn.setRequestMethod("GET");//一定要大写
	if(conn.getResponseCode()==200){
		return true;
	}
	return false;
}

 
}

 

 

 

 

  • 大小: 49.1 KB
  • 大小: 1.1 KB
分享到:
评论

相关推荐

    getdata安装包 数据提取_getdata

    《getdata:数据提取在土木工程中的应用与实践》 在现代的土木工程领域,数据的收集、处理和分析已经成为不可或缺的一部分。getdata,作为一个强大的数据提取工具,为工科专业人士提供了高效便捷的数据处理解决方案...

    Winget 离线安装包 LTSC Server Winget

    标题 "Winget 离线安装包 LTSC Server Winget" 提供的信息表明,这是一个专门为Windows LTSC(Long-Term Servicing Channel)服务器版本设计的Winget(Windows Package Manager)离线安装包。Winget是微软推出的一个...

    利用getdata获取图形数据

    "利用getdata获取图形数据"这一主题涉及到一个名为getdata的软件工具,它专门用于从各种图形文件中提取数据点,使用户能够对这些数据进行进一步处理或分析。下面将详细介绍getdata软件及其使用方法。 getdata是一款...

    Ajax中get和post区别

    "Ajax中Get和Post请求的区别" Ajax作为异步JavaScript和XML的简写,是一种创建交互式网页的技术。其中,Get和Post是两种常用的HTTP请求方法,尽管它们都是用于将数据从客户端发送到服务器端,但是它们之间存在着很...

    getaddrinfo.c 内部代码

    《深入解析getaddrinfo.c:C语言在Linux DNS解析中的应用》 在计算机网络编程中,DNS(Domain Name System)是互联网的一项基础服务,它负责将人类可读的域名转换为IP地址。在Linux系统中,`getaddrinfo()`函数是...

    Debian apt-get 使用指南

    ### Debian apt-get 使用指南 #### 一、简介与基本概念 `apt-get` 是 Debian 及其衍生系统(如 Ubuntu)中的一个强大的包管理工具,它可以帮助用户安装、升级、卸载软件包,并且能够自动解决依赖关系。本文将详细...

    GetData安装软件及使用教程

    【GetData安装软件及使用教程】 GetData是一款强大的图形数据提取工具,尤其在科研和工程领域中广泛应用。当你遇到只有二维曲线图而缺乏具体点数据的情况时,GetData可以帮助你从图像中恢复或提取这些丢失的数据点...

    httppost和httpget需要的jar包

    在Java编程中,HTTP POST和GET是两种基本的HTTP请求方法,用于客户端向服务器发送数据。为了在Java中实现这些功能,我们需要引入特定的库,这些库通常被打包成JAR(Java Archive)文件。本篇文章将详细讲解HTTP POST...

    getshell工具使用教程

    在网络安全和渗透测试领域,"getshell"是一个常见的术语,指的是获取远程服务器的命令执行权限,从而能够控制或访问目标系统。在这个“getshell工具使用教程”中,我们将深入探讨如何利用特定的工具来实现这一目标。...

    GetData 教程软件

    GetData Graph Digitizer是一款强大的图形化坐标读取工具,专门用于从数据曲线和散点图中精确提取原始数据点。这款软件对于科学家、工程师以及任何需要从图表中获取精确数值的人来说非常有用。它允许用户轻松地从...

    ajax POST 与GET提交的区别

    ### AJAX POST 与 GET 提交的区别详解 #### 一、GET与POST基本概念及应用场景 在探讨AJAX中GET和POST的区别之前,我们先来了解一下这两种请求方式的基本概念。 **GET**请求通常用于获取资源信息,它将参数拼接到...

    在线PostGet本地版

    在线PostGet本地版是一款专为开发者设计的工具,它提供了与在线PostGet服务相同的功能,但可以在本地运行,便于开发者进行API测试、数据交互以及调试。这个应用简化了HTTP请求的发送过程,使得用户能够在自己的...

    西门子S7-1200的putget操作

    ### 西门子S7-1200的PUT/GET操作详解 #### 一、概述 西门子S7-1200系列PLC(Programmable Logic Controller,可编程逻辑控制器)广泛应用于工业自动化领域。PUT/GET操作是一种用于在两个或多个PLC之间传输数据的...

    getdata-v2.25.zip

    《getdata软件安装指南与应用解析》 在数字化时代,数据的重要性不言而喻,而高效的数据处理工具更是不可或缺。本文将围绕“getdata”这一软件进行深入探讨,旨在帮助用户了解getdata的安装过程,并解析其核心功能...

    GetIP PB获取IP的DLL

    Function uLong Gethost(ref string hostname) Library "GetIP60.dll" ALIAS FOR "Gethost;ansi" 调用方法 string ls_Host = space(256) int result result = Gethost(ls_Host) if result =0 then sle_1.text=...

    getdata-v2.25.rar

    《getdata:高效的数据提取工具》 在信息技术领域,数据的获取与处理是科研和工程实践中不可或缺的一环。本文将详细介绍“getdata”这一强大的数据提取软件,它为用户提供了便利的方式来获取图像中的坐标信息,使得...

    Http协议中POST和GET方法的本质区别

    首先,从原理上看,GET方法通常用于获取资源信息,它通过URL来传递参数,URL全称为资源描述符,表示网络上的一个资源。GET请求被认为是安全的和幂等的。安全意味着它不会改变服务器上的数据,幂等则表示多次执行同一...

    Getdata.zip

    《GetData图形数字化仪:高效获取图像数据的利器》 在当今的科技时代,数据分析与处理已经成为科研、工程和商业领域不可或缺的一部分。面对大量的图形数据,如何有效地从中提取所需信息成为了一个亟待解决的问题。...

    VC++ HTTP Get Post请求

    在VC++中,可以使用WinInet库来实现GET请求。首先,包含必要的头文件`#include &lt;wininet.h&gt;`,然后使用`InternetOpen()`, `InternetConnect()`, `HttpOpenRequest()`, `HttpSendRequest()`等函数创建连接并发送请求...

    博途S7-1500CPu与CPU之间PUT GET通信例程.rar

    本例程着重探讨了S7-1500CPU之间利用PUT和GET指令进行通信的方法。PUT和GET是SIMATIC PLC之间进行数据交换的常用命令,它们允许不同PLC之间高效地传输数据,以实现系统间的协同工作。 PUT指令用于将本地CPU的数据...

Global site tag (gtag.js) - Google Analytics