通过GET方式传递 数据到服务器

服务器端代码:

package com.wangjialin.internet.servlet;

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


@WebServlet("/ServletForGETMethod")
public class ServletForGETMethod extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String name= request.getParameter("name");
//          String name= new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
            String age= request.getParameter("age");
            System.out.println("name: " + name );
            System.out.println("age: " + age );

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

同时服务器端也要在web.xml文件中配置一些文件:
要把以下代码加入到web.xml 文件中

 <servlet>
    <display-name>ServletForGETMethod</display-name>
    <servlet-name>ServletForGETMethod</servlet-name>
    <servlet-class>com.wangjialin.internet.servlet.ServletForGETMethod</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletForGETMethod</servlet-name>
    <url-pattern>/ServletForGETMethod</url-pattern>
  </servlet-mapping>

Android客户端的业务逻辑类是:

package com.wangjialin.internet.userInformation.service;

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

public class UserInformationService {
    public static boolean save(String title, String length) throws Exception{
        String path = "http://192.168.1.100:8080/ServerForGETMethod/ServletForGETMethod";
        Map<String, String> params = new HashMap<String, String>();
        params.put("name", title);
        params.put("age", length);
        return sendGETRequest(path, params, "UTF-8");
    }



    /**
     * 发送GET请求
     * @param path 请求路径
     * @param params 请求参数
     * @return
     */
    private static boolean sendGETRequest(String path, Map<String, String> params, String encoding) throws Exception{
        // http://192.178.1.100:8080/ServerForGETMethod/ServletForGETMethod?title=xxxx&length=90
        StringBuilder sb = new StringBuilder(path);
        if(params!=null && !params.isEmpty()){
            sb.append("?");
            for(Map.Entry<String, String> entry : params.entrySet()){
                sb.append(entry.getKey()).append("=");
                sb.append(URLEncoder.encode(entry.getValue(), encoding));
                sb.append("&");
            }
            sb.deleteCharAt(sb.length() - 1);
        }
        HttpURLConnection conn = (HttpURLConnection) new URL(sb.toString()).openConnection();
        conn.setConnectTimeout(5000);
        conn.setRequestMethod("GET");
        if(conn.getResponseCode() == 200){
            return true;
        }
        return false;
    }
}

同时Android客户端的代码也要在AndroidManifest.xml中配置一下:
要有访问网络的权限设置:

服务器端控制台上的数据可能出现乱码:
这个时候要修改一些:
要对获取的字符串加上一句:
String name= new String(request.getParameter(“name”).getBytes(“ISO8859-1”),”UTF-8”);



GET适用用数据量小于2KB并且安全性不是很高的情况下的适用!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值