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简易实战教程--第十五话《在外部存储中读写文件》
第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意 ...
随机推荐
- 函数调用方式__stdcall、__cdel
函数调用方式关系对比如下: 关键字 调用规则 参数传递方向 返回 参数寄存器 堆栈的清除 __cdecl C语言 从右向左 EAX 无 调用者 __stdcall Win32标准 从右向左 EAX ...
- Lucene/Solr搜索引擎开发笔记 - 第2章 Solr安装与部署(Tomcat篇)
一.安装环境 图1-1 Tomcat和Solr的版本 我本机目前使用的Java版本为JDK 1.8,因为Solr 4.9要求Java版本为1.7+,请注意. 二.Solr部署到Tomcat流程 图1- ...
- node.js和express.js安装和使用步骤 [windows]
PS: NODEJS:https://nodejs.org NPM:https://www.npmjs.com/ 一.node.js安装与配置 到https://nodejs.org/en/downl ...
- Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
今天遇到一个项目中用到Android 6.0的系统,但是有个文件是从Assert目录下写到SDCard中,但是AndroidMinifest.xml中已经加了文件的读权限和写权限,异常日志是在创建文件 ...
- Drools给日志打标签
一.定义日志模型 public class Logger { // 日志编号 private String id; // 目标IP private String targetIp; // 目标端口 p ...
- Android Gradle 技巧之一: Build Variant 相关
Build Variant android gradle 插件,允许对最终的包以多个维度进行组合. BuildVariant = ProductFlavor x BuildType 两个维度 最常见的 ...
- MyEclipse中的重命名
我们要重命名一个函数或变量时,如果手工改会很耗时而且可能会有些遗漏,造成编译错误.这个时候可以在变量或函数定义处,按下MyEclipse的Alter + SHIF + R 重命名,然后按下Enter键 ...
- InnoDB: Error number 24 means ‘Too many open files’.--转载
一.问题的描述 备份程序 执行前滚的时候报错.(-apply-log) InnoDB: Errornumber 24 means 'Too many open files'. InnoDB: Some ...
- DATAGUARD 在线重建备库
环境: OS: CentOS 6.5 X64 DB: oracle 10.2.0.5 故障:之前由于错误激活备库主写导致主备日志同步,重建备库 1.关闭备库,删除数据文件及控制文件,redo文件 rm ...
- winform画图闪烁问题
问题:在winform程序的onpaint方法中画图, 连续画, 如鼠标移动时就要不断画图, 会闪烁. 解决方法:将要画图的部分放到一个自定义控件中, 自定义控件的onpaint方法里面画图, 然后再 ...