andorid 远程存储中JDK和Volley的GET和POST方法
在操作Volley的时候先添加volley.jar(包)
<uses-permission android:name="android.permission.INTERNET"/>(权限)
wep.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.hanqi.application3.WebActivity"
android:orientation="vertical"> <EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_5"
android:hint="url地址"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="JDK的get方式"
android:onClick="bt55_onclick"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="JDK的pose方式"
android:onClick="bt66_onclick"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Android的get方式"
android:onClick="bt77_onclick"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Android的pose方式"
android:onClick="bt88_onclick"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Volley的get方式"
android:onClick="bt99_onclick"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Volley的pose方式"
android:onClick="bt100_onclick"/>
</LinearLayout>
<EditText
android:layout_width="match_parent"
android:layout_height="100dp"
android:id="@+id/et_6"/>
</LinearLayout>
WepActivity.java
package com.hanqi.application3; import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast; import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley; import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map; public class WebActivity extends AppCompatActivity { EditText et5;
EditText et6;
RequestQueue requestQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web); et5 = (EditText)findViewById(R.id.et_5);
et5.setText("http://192.168.0.101:8080/TestWeb/index.jsp");
et6 = (EditText)findViewById(R.id.et_6);
//获取Volley的请求队列
requestQueue = Volley.newRequestQueue(this); }
//1.在子线程访问网络
//2.提供进度对话框
//3.设置权限
public void bt66_onclick(View v)
{
//1.显示ProgressDialog进度对话框
final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
//2.访问网络,启动分线程
new Thread() {
//3. 在分线程, 发送请求, 得到响应数据
@Override
public void run() { try {
//1-URL
URL url = new URL(et5.getText().toString());
//2-URL获取链接
HttpURLConnection huc= (HttpURLConnection)url.openConnection();
//请求方式
huc.setRequestMethod("POST");
//设置超时
huc.setConnectTimeout(5000);
huc.setReadTimeout(5000);
//链接并发送请求
huc.connect();
//用输出流设置请求体
OutputStream os = huc.getOutputStream();
String str = "name=Rose";
os.write(str.getBytes("UTF-8")); //接收:
//判断返回状态码 200
int code = huc.getResponseCode(); if(code == 200)
{
//接收数据 //输入流:
InputStream is = huc.getInputStream();
//读取流
//1-byte数据
byte[] b= new byte[1024];
//2-读到数组的长度
int i = 0;
//3-数据
final StringBuffer sd1 = new StringBuffer();
while ((i=is.read(b))>0)
{
sd1.append(new String(b,0,i));
}
is.close();
huc.disconnect();
//释放资源
//通过主线程信息和关闭对话框
runOnUiThread(new Runnable() {
@Override
public void run() {
et6.setText(sd1); dialog.dismiss();
}
}); }
else {
Toast.makeText(WebActivity.this, "连接错误,返回的状态码="+code, Toast.LENGTH_SHORT).show();
}
os.close(); } catch (Exception e) {
e.printStackTrace(); dialog.dismiss(); }
}
}.start();
}
public void bt55_onclick(View v)
{
//1.显示ProgressDialog进度对话框
final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
//2.访问网络,启动分线程
new Thread() {
//3. 在分线程, 发送请求, 得到响应数据
@Override
public void run() { try {
//1-URL
URL url = new URL(et5.getText().toString() + "?name=Tom1&age=11");
//2-URL获取链接
HttpURLConnection huc= (HttpURLConnection)url.openConnection();
//请求方式
huc.setRequestMethod("GET");
//设置超时
huc.setConnectTimeout(3000);
huc.setReadTimeout(3000);
//链接并发送请求
huc.connect();
//接收:
//判断返回状态码 200
int code = huc.getResponseCode(); if(code == 200)
{
//接收数据 //输入流:
InputStream is = huc.getInputStream();
//读取流
//1-byte数据
byte[] b= new byte[1024];
//2-读到数组的长度
int i = 0;
//3-数据
final StringBuffer sd1 = new StringBuffer();
while ((i=is.read(b))>0)
{
sd1.append(new String(b,0,i));
}
is.close();
huc.disconnect();
//释放资源
//通过主线程信息和关闭对话框
runOnUiThread(new Runnable() {
@Override
public void run() {
et6.setText(sd1); dialog.dismiss();
}
}); }
else {
Toast.makeText(WebActivity.this, "连接错误,返回的状态码="+code, Toast.LENGTH_SHORT).show();
}
//接收数据 } catch (Exception e) {
e.printStackTrace(); dialog.dismiss(); }
}
}.start();
}
public void bt77_onclick(View v)
{
final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中..."); }
public void bt99_onclick(View v)
{
final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
//构造Volley的请求对象
StringRequest sr = new StringRequest(et5.getText().toString() + "?name=jack", new Response.Listener<String>() {
@Override
public void onResponse(String s) {
et6.setText(s);
dialog.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(WebActivity.this, "访问出现异常", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
//把请求对象放入队列
requestQueue.add(sr);
}
public void bt100_onclick(View v)
{
final ProgressDialog dialog = ProgressDialog.show(this,null,"请求中...");
//构造Volley的请求对象
StringRequest sr = new StringRequest(Request.Method.POST,et5.getText().toString(), new Response.Listener<String>() {
@Override
public void onResponse(String s) {
et6.setText(s);
dialog.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(WebActivity.this, "访问出现异常", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
}){
//重写设置参数的方法
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> m = new HashMap<String,String>();
m.put("name","Volley");
return m;
}
};
//把请求对象放入队列
requestQueue.add(sr);
}
}
andorid 远程存储中JDK和Volley的GET和POST方法的更多相关文章
- html5 webDatabase 存储中sql语句执行可嵌套使用
html5 webDatabase 存储中sql语句执行可嵌套使用,代码如下: *); data.transaction(function(tx){ tx.executeSql("creat ...
- 在WINDOWS SERVER 上或远程桌面中使用 MUTEX
引用: http://www.cnblogs.com/fg0711/archive/2012/05/03/2480502.html 使用Mutex需要注意的两个细节 可能你已经注意到了,例子中在给Mu ...
- webstorm卡、闪退以及win10中jdk配置【转】
原文地址:webstorm卡.闪退以及win10中jdk配置 今天 webstorm 突然一直处于 indexing 索引状态,然后就卡死,重装也无法解决. 搜了一下后,有人说使用 64 位客户端 ...
- java学习之Java中JDK,JRE和JVM之间的关系(转载)
最近要重新抓一下java,大量扫技术文档,保存下来供自己查阅.以下转载自http://www.cnblogs.com/xiaofeixiang/p/4085159.html 初学JAVA很容易被其中的 ...
- 重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作
原文:重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作 [源码下载 ...
- 在ASP dot Net Core MVC中用Controllers调用你的Asp dotnet Core Web API 实现CRUD到远程数据库中,构建你的分布式应用(附Git地址)
本文所有的东西都是在dot Net Core 1.1环境+VS2017保证测试通过. 本文接着上次文章接着写的,不了解上篇文章的可能看着有点吃力.我尽量让大家都能看懂.这是上篇文章的连接http:// ...
- Git添加远程库和从远程库中获取(新手傻瓜式教学)
一. Git添加远程库 1.在本地新建一个文件夹,在该文件夹使用Git工具,运行$ git init,将该文件夹变为本地Git仓库,同时会生成一个隐藏的.git文件夹. 2.在该文件夹中用Not ...
- Git添加远程库和从远程库中获取
一. Git添加远程库 1. 在本地新建一个文件夹,在该文件夹使用Git工具,运行$ git init,将该文件夹变为本地Git仓库,同时会生成一个隐藏的.git文件夹. 2. 在该文件夹中用Note ...
- Android简易实战教程--第十五话《在外部存储中读写文件》
第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意 ...
随机推荐
- CentOS 7 php留言本网站的搭建
一如既往的先搭建yum仓库 并且安装httpd服务 yum install httpd -y 1:改网页的搭建是基于html搭建 查询是否安装该协议 rpm -qa |grep httpd 2:留言板 ...
- 关于初次使用Verilog HDL语言需要懂的基本语法
关于初次使用Verilog HDL语言需要懂的基本语法 1.常量 数字表达式全面的描述方式为:<位宽><进制><数字> 8’b10101100,表示位宽为8的二进制 ...
- FCKeditor 2.6.4.1 初始化值不能显示中文问题
最近在学习PHP加入FCKeditor 在线编辑器,发现在初始化Value赋值时,英文可以显示出来,中文怎么都显示不出来,连乱码都不显示. 经过漫长的探索,终于找到原因了! 在fckeditor目录下 ...
- overfitting过拟合
来自:https://www.zhihu.com/question/32246256 其实不完全是噪声和假规律会造成过拟合. (1)打个形象的比方,给一群天鹅让机器来学习天鹅的特征,经过训练后,知道了 ...
- VS2010 + Entity FrameWork 4.4 +Mvc 4.0 出现的错误
Compiler Error Message: CS0012: The type 'System.Data.Objects.DataClasses.EntityObject' is defined i ...
- java基础要点
Java语言是现在比较常用的编程语言,因为Java语言可以编写桌用程序,也可以编写web程序,还能编写嵌入式程序.这是由于相比脚本语言,Java 的运行速度要快.而对于底层语言,Java与平台无关,可 ...
- KT vs SKT [20160816]
KT:索尔 SKT:茂凯,塔里克,卡西奥佩娅 普朗克+烬,大招开团. 塔里克保护,眩晕.
- 更改RAC日志组
alter database add logfile thread 1 group 5 ('+DATA/idb/onlinelog/group5.log') size 256m;alter datab ...
- MysqlServer如何实现成功卸载,并成功安装
MysqlServer卸载过程如下: (1).在控制面板或者通过其他卸载工具中,卸载MysqlServer. (2).打开C:\ProgramData---这个文件是隐藏的,需显示出来.在里面找到my ...
- C Primer Plus(第五版)12
第 12 章 存储类, 链接和内存管理 在本章中你将学习下列内容 . 关键字: auto, extern, static, register, const, volatile, restricted. ...