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简易实战教程--第十五话《在外部存储中读写文件》
第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意 ...
随机推荐
- Microsoft .NET Framework NGEN是神马东东?
简单的说,如果你的程序是基于.net framework的托管代码的话,NGEN服务能让你的程序第二次打开的速度变快. 赶脚是非常pad化的一项服务. http://msdn.microsoft.co ...
- [HTML5]HTML语义(Semantics)
HTML 是有含义的 语义指的是计算机语言定义的符号有其规范的含义,HTML中的标签.属性和属性值都有其约定的含义. 语义和默认样式有所不同,默认样式是浏览器设定的一些常用标签的表现形式,而语义化的主 ...
- Android Gradle 技巧之二: 最爱命令行
命令行 很多做 Android 开发不久的同学,习惯于使用图形界面,对命令行操作很陌生甚至恐惧.遇到 AS 运行错误,束手无策.AS 为了确保易用性,也在 UI 界面上屏蔽了很多命令行运行的细节,导致 ...
- 让background-color 无效
{ background-color: transparent; // 让背景透明,相当于背景颜色无效 }
- 一、Owin Identity的使用
参照http://www.cnblogs.com/r01cn/p/5177708.html教程. 注意点: 1.Nuget包分别下载Microsoft.AspNet.Identity(Owin必须), ...
- petapoco IsNew
// Check if a poco represents a new record public bool IsNew(string primaryKeyName, object poco) { v ...
- web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢?
这是我在知乎上遇到的一个问题: web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢? 首先这个提问本身就是有问题的, 没有哪个阶段是用工具实现的, ...
- 2016-08-15:从YUV420P中提取指定大小区域
typedef struct { int width; int height; }SizeInfo; typedef struct { int x; int y; int width; int hei ...
- 安装和使用memcached
引用:http://www.czhphp.com/archives/252 如何将 memcached 融入到您的环境中? 在开始安装和使用 using memcached 之前,我们需要了解如何将 ...
- PIC32MZ tutorial -- Watchdog Timer
Watchdog is a very necessary module for embedded system. Someone said that embedded system operates ...