Http通信访问网络资源(Get与Post请求)
来源:互联网 发布:社会关系网络问卷 编辑:程序博客网 时间:2024/06/01 20:04
添加网络访问权限
<uses-permission android:name="android.permission.INTERNET"/>
package com.zdsoft.httpget;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLEncoder;public class MainActivity extends AppCompatActivity { private EditText et_username, et_password; private Button bt_login; private String result = "";//服务器返回结果 private String URL_BASE = "http://192.168.12.187:8080/test/servlet/LoginServlet";//接口地址 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); bt_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { //更新UI if (msg.what == 1) { Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show(); et_username.setText(""); et_password.setText(""); } } }; new Thread() { @Override public void run() { //网络访问,登录 //get方式 //loginGet(et_username.getText().toString(), et_password.getText().toString()); //post方式 loginPost(et_username.getText().toString(), et_password.getText().toString()); Message message = new Message(); message.what = 1; handler.sendMessage(message); } }.start(); } }); } private void initView() { et_username = (EditText) findViewById(R.id.et_username); et_password = (EditText) findViewById(R.id.et_password); bt_login = (Button) findViewById(R.id.bt_login); } /** * get方式提交 * 用户登录 * * @param username * @param password */ private void loginGet(String username, String password) { try { //获取URL对象 URL url = new URL(URL_BASE + "?username=" + URLEncoder.encode(username, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + ""); //获取HttpURLConnection HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); //获取输入流 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream())); //读取服务器返回结果 StringBuffer sb = new StringBuffer(); String line = ""; while ((line = bufferedReader.readLine()) != null) { sb.append(line); } result = sb.toString(); //关闭流,断开链接 bufferedReader.close(); connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } } /** * post方式提交 * 用户登录 * * @param username * @param password */ private void loginPost(String username, String password) { try { //获取URL对象 URL url = new URL(URL_BASE); //获取HttpURLConnection HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); //设置允许输入、输出 conn.setDoInput(true); conn.setDoOutput(true); //设置请求的头 conn.setRequestProperty("content-type", "application/x-www-form-urlencoded"); conn.setRequestProperty("charset", "utf-8"); //获取输出流 OutputStream os = conn.getOutputStream(); String date = "username=" + URLEncoder.encode(username, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + ""; os.write(date.getBytes()); os.flush(); //获取BufferedReader,读取服务器返回信息 BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line = ""; StringBuffer sb = new StringBuffer(); while ((line = br.readLine()) != null) { sb.append(line); } result = sb.toString(); //关闭流,断开链接 os.close(); conn.disconnect(); } catch (Exception e) { e.printStackTrace(); } }}
1 0
- Http通信访问网络资源(Get与Post请求)
- HTTP中的GET请求与POST请求
- HTTP中的get请求与post请求
- post 与get 区别,为什么现在的HTTP通信中大多数请求还是使用get?
- 使用HTTP GET 和HTTP POST请求访问HTTP资源
- 使用HTTP GET 和HTTP POST请求访问HTTP资源
- HTTP请求:GET与POST的区别
- Http POST与GET请求JAVA实现
- Java http get与post请求
- Java http get与post请求
- http get与post请求区别
- http请求post与get区别
- HTTP请求GET与POST的区别
- HTTP请求&响应、POST与GET
- HTTP请求与响应-get和post
- http请求get与post的区别
- HTTP请求方式:get与post
- Android之Http通信GET与POST
- 史上最全的机器学习资料
- 学习ButterKnife 8.4.0
- TypeScript 错误“property does not exist on value of type”
- CFont::CreateFont 详解
- PLSQL无法查看所有的表
- Http通信访问网络资源(Get与Post请求)
- 仿饿了么“谁去拿外卖”代码
- 标准函数库(#include<stdio.h>)
- 模拟聊天的jar包
- srs压力测试
- 23种设计模式
- Python datetime模块之datetime
- Add method not implemented
- Session