zoukankan      html  css  js  c++  java
  • GET方法向服务器提交数据

    界面很简单

    MainActivity.java

     1 package com.dasou.applyData;
     2 
     3 import com.dasou.applyData.login.loginServlet;
     4 
     5 import android.app.Activity;
     6 import android.os.Bundle;
     7 import android.view.View;
     8 import android.widget.Button;
     9 import android.widget.EditText;
    10 import android.widget.Toast;
    11 
    12 public class MainActivity extends Activity {
    13     private EditText etn,etp;
    14     private Button bn;
    15 
    16     @Override
    17     protected void onCreate(Bundle savedInstanceState) {
    18         super.onCreate(savedInstanceState);
    19         setContentView(R.layout.activity_main);
    20         etn=(EditText)findViewById(R.id.etn);
    21         etp=(EditText)findViewById(R.id.etp);
    22         
    23         
    24     }
    25     public void click(View view){
    26         final String username=etn.getText().toString().trim();
    27          final String password=etp.getText().toString().trim();
    28         //String path="http://111.79.31.93:8888/web/loginServlet?username="+name+"&password="+password;
    29         new Thread(){
    30             public void run() {
    31                 final String result=loginServlet.loginServlet(username, password);
    32                 if(result!=null){
    33                     //不为空则请求成功
    34                     //由于子线程中无法进行UI操作,所以需要在主线程中进行该操作
    35                     //该方法就是个主线程运行器,直接将代码塞入该运行器中,不必拿到主线程框架中
    36                     runOnUiThread(new Runnable() {
    37                         public void run() {
    38                             Toast.makeText(MainActivity.this, result, 0).show();
    39                         }
    40                     });
    41                     
    42                 }else{
    43                     //请求失败
    44                     runOnUiThread(new Runnable() {
    45                         public void run() {
    46                             Toast.makeText(MainActivity.this, "请求失败", 0).show();
    47                         }
    48                     });
    49                 }
    50                 
    51             };
    52         }.start();
    53     }
    54 
    55     
    56 
    57     
    58 
    59 }
    View Code

    该类主要提供链接服务器的功能

    loginservlet.java

     1 package com.dasou.applyData.login;
     2 
     3 import java.io.InputStream;
     4 import java.net.URL;
     5 
     6 import javax.net.ssl.HttpsURLConnection;
     7 
     8 import com.dasou.applyData.utils.StreamTool;
     9 
    10 public class loginServlet {
    11     public static String loginServlet(String username,String password){
    12         try{
    13             String path="http://59.52.195.152:8888/web/loginServlet?" +
    14                     "username="+username+"&password="+password;
    15             URL url=new URL(path);
    16             HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
    17             conn.setConnectTimeout(5000);
    18             conn.setRequestMethod("GET");
    19             //获取服务器返回码
    20             int coad=conn.getResponseCode();
    21             if(coad==200){
    22                 //请求成功
    23                 //获取服务器返回来的流
    24                 InputStream is=conn.getInputStream();
    25                 String text=StreamTool.readIputStream(is);
    26                 return text;
    27                 
    28             }else{
    29                 return null;
    30             }
    31             
    32             
    33         }catch(Exception e){
    34             e.printStackTrace();
    35             
    36         }return null;
    37         
    38     }
    39 
    40 }
    View Code

    该类是自定义于loginServlet的工具类,当获取到正确的服务器返回码时,如何接收服务器的数据流
    streamTool.java

     1 package com.dasou.applyData.utils;
     2 
     3 import java.io.ByteArrayOutputStream;
     4 import java.io.InputStream;
     5 
     6 public class StreamTool {
     7     public static String readIputStream(InputStream is){
     8         try{
     9             ByteArrayOutputStream baso=new ByteArrayOutputStream();
    10              int len=0;
    11             byte[] buffer=new byte[1024];
    12             while((len=is.read(buffer))!=-1){
    13                 baso.write(buffer, 0, len);
    14                 
    15             }
    16             is.close();
    17             baso.close();
    18             byte[] result=baso.toByteArray();
    19             String temp=new String(result);
    20             return temp;
    21         }catch(Exception e){
    22             return "获取失败";
    23         }
    24         
    25         
    26     }
    27 
    28 }
    View Code

    修改UI等操作是无法在子线程中进行操作的,因此需要将其转移到主线程中,除上篇提到的使用消息机制外,还可以使用runOnUiThread()方法中进行

  • 相关阅读:
    Mastering Web Application Development with AngularJS 读书笔记-前记
    通过信息系统项目管理师-我的备考经验
    通过系统集成项目管理工程师考试-我的备考分享
    即将翻译 Building The New Financial Times Web App
    CSS3:flex布局应用
    前端性能利器——dynatrace ajax edition
    SIMD---AVX系列
    DirectSound---捕获音频、Qml/C++ 集成交互
    SIMD---SSE系列及效率对比
    SIMD---MMX代码优化
  • 原文地址:https://www.cnblogs.com/DASOU/p/GET.html
Copyright © 2011-2022 走看看