android 中使用volley进行网络通信一些小问题

android 中使用volley进行网络通信一些小问题,第1张

1.volley 不需要开启线程 文件上传和下载 这个就不知道了 volley主要针对的是图片 如果你想用文件 还是用https://github.com/loopj/android-async-http这个 而且有例子

1.  下载官网的android SDK(本人用的是eclipse)

2.  新建一个android项目:

File->new->andriod Application project

3、点击next,建立第一个mainActivity

4、启动服务器端,本人采用的是ssh搭建的server端,能接受前台的post或get请求,然后返还json数据(本例子,主要演示如何在android发送post和get请求)

6、下面有很关键的几步的,与在本地编写web有所不同:

A:android端的url要写上服务器端的ip:

如下:

String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!register.action?pwd='测试'"

(后面我会给出完整的代码)

B、要在AndroidManifest.xml文件中添加:

7、下面就是具体的使用post和get请求的代码:

A:发送get请求如下:

package com.example.xiaoyuantong

import java.util.HashMap

import java.util.Iterator

import org.json.JSONException

import org.json.JSONObject

import android.app.Activity

import android.os.Bundle

import android.util.Log

import android.widget.TextView

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.JsonObjectRequest

import com.android.volley.toolbox.Volley

/**

* Demo

*/

public class MainActivity extends Activity {

private RequestQueue requestQueue

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

init()

}

private void init() {

TextView textView = (TextView)findViewById(R.id.textView)

requestQueue = Volley.newRequestQueue(this)

getJson()

textView.setText("hello")

}

private void getJson(){

String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!register.action?pwd='测试'"

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(

Request.Method.GET, url, null,

new Response.Listener<JSONObject>() {

@Override

public void onResponse(JSONObject response) {

//这里可以打印出接受到返回的json

Log.e("bbb", response.toString())

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError arg0) {

// System.out.println("sorry,Error")

Log.e("aaa", arg0.toString())

}

})

requestQueue.add(jsonObjectRequest)

}

}

B:发送post请求如下:

package com.example.xiaoyuantong

import java.util.HashMap

import java.util.Map

import org.json.JSONException

import org.json.JSONObject

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.JsonObjectRequest

import com.android.volley.toolbox.Volley

import android.os.Bundle

import android.app.Activity

import android.util.Log

import android.view.Menu

import android.widget.TextView

public class PostActivity extends Activity {

private RequestQueue requestQueue

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_post)

init()

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menuthis adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.post, menu)

return true

}

private void init() {

TextView textView = (TextView)findViewById(R.id.postView)

requestQueue = Volley.newRequestQueue(this)

getJson()

textView.setText("hellopost")

}

private void getJson(){

String url = "http://192.168.20.1:8080/xiaoyuantong/userAction!reg.action"

JsonObjectRequest jsonObjectRequest

JSONObject jsonObject=new JSONObject()

try {

jsonObject.put("name", "张三")

jsonObject.put("sex", "女")

} catch (JSONException e1) {

// TODO Auto-generated catch block

e1.printStackTrace()

}

//打印前台向后台要提交的post数据

Log.e("post",jsonObject.toString())

//发送post请求

try{

jsonObjectRequest = new JsonObjectRequest(

Request.Method.POST, url, jsonObject,

new Response.Listener<JSONObject>() {

@Override

public void onResponse(JSONObject response) {

//打印请求后获取的json数据

Log.e("bbb", response.toString())

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError arg0) {

// System.out.println("sorry,Error")

Log.e("aaa", arg0.toString())

}

})

requestQueue.add(jsonObjectRequest)

} catch (Exception e) {

e.printStackTrace()

System.out.println(e + "")

}

requestQueue.start()

}

}

8、在android的logcat里面能查看到打印的请求

(红色的显示的是我在后台请求到数据)

有时候logcat显示不出数据,可能是消息被过滤了,可以在左边点击“减号”删除过滤

在server端,也就是在myeclipse的建立的另一个后台工程里面能获取到请求:

9、后续会补充json数据的解析部分,以及过度到移动云的部分,上面只是c/s模式下的一个简单的基于http的请求应答例子。

2019年8月27日

Java并发 行级锁/字段锁/表级锁 乐观锁/悲观锁 共享锁/排他锁 死锁

摘要:原文地址: 前言 锁是防止在两个事务 *** 作同一个数据源(表或行)时交互破坏数据的一种机制。 数据库采用封锁技术保证并发 *** 作的可串行性。 以Oracle为例: Oracle的锁分为两大类:数据锁(也称DML锁)和字典锁。 字阅读全文

posted @ 2019-08-27 17:21 法捷耶夫 阅读 (105) 评论 (0)编辑

2019年5月18日

webstorm编写react native,代码修改后,重新编译运行没有变化的问题

摘要:w我是拷贝一份react native代码到另一台电脑,发现修改代码运行之后不显示修改后的效果,即仍然与原来的效果一样,暂时不知道什么原因, 后来我运行了npm install 就可以了,不知道是不是这个原因。阅读全文

posted @ 2019-05-18 09:19 法捷耶夫 阅读 (172) 评论 (0)编辑

2018年1月26日

tomcat 取消项目名访问路径

摘要:在server.xml 里,<host>...</host>的标签之间添加<Context path="" docBase="projectName" debug="0"/>阅读全文

posted @ 2018-01-26 13:32 法捷耶夫 阅读 (58) 评论 (0)编辑

2017年12月24日

jquery获取标签名,获取id

摘要:var elementId = $(this).attr("id")var tagName = $(this)[0].tagName阅读全文

posted @ 2017-12-24 13:47 法捷耶夫 阅读 (1853) 评论 (0)编辑

Android studio 在一个项目上添加另一个项目,引用其内部参数

摘要:Setting.gradle 里面 添加 其中 imagePicker 为要引入的项目名 build.gradle(Module: app) dependencies 内 添加阅读全文

posted @ 2017-12-24 13:21 法捷耶夫 阅读 (791) 评论 (0)编辑

2017年12月19日

oracle、mysql、sybase和sqlserver复制表结构和数据

摘要:转自该博主,谢谢其作出的贡献, Sql Server(sybase): 1.复制表结构: 新建表student2,并且结构同表syn_xj_student一致。Sql语句如下: 2.复制表数据,并排除俩表阅读全文

posted @ 2017-12-19 18:45 法捷耶夫 阅读 (182) 评论 (0)编辑

2017年12月13日

U8 应付款管理 单据类型 分析

摘要:Ap_CloseBill 收付款单主表 Ap_CloseBills 收付款单子表 cVouchType 在收付款单主表中 ,用于区分单据为收款单还是付款单(48,49) 49:付款单 48:收款单 在订单进行更改客户 *** 作时,应先将订单的原客户的定金退回原客户,在修改销售订单中的客户信息 所以应该先判阅读全文

posted @ 2017-12-13 17:25 法捷耶夫 阅读 (263) 评论 (0)编辑

2016年12月22日

编写xml文件不当时会出现R文件找不到情况

摘要:1法捷耶夫简介,先检查xml文件是否报错,报错的话直接找到报错行。 2,xml文件若不报错,可能是文本值得格式输入错误 比如android:text=“<0.5km”,此时的小于号就会引发错误,导致R文件找不到 解决办法:不要把文本值直接写在该位置,在values/strings下定义文本值,使用引用可解决此问阅读全文

posted @ 2016-12-22 16:15 法捷耶夫 阅读 (114) 评论 (0)编辑

2016年12月1日

使用volley上传多张图片,一个参数对应多张图片,转载

摘要: 原帖地址 而如果使用volley的话,因为请求数据那些都很简便,但遇到上传文件就麻烦那可不好,同时使用多个网络请求类库也是不太建议的。所以这里就给出了一种解决方法,也要借助一个jar包,这里用到的是httpmi阅读全文

posted @ 2016-12-01 10:08 法捷耶夫 阅读 (1994) 评论 (0)编辑

2016年11月23日

Fragment 生命周期的详情

摘要:Fragment每个生命周期方法的意义、作用(注意红色的不是生命周期方法):setUserVisibleHint():设置Fragment可见或者不可见时会调用此方法。在该方法里面可以通过调用getUserVisibleHint()获得Fragment的状态是可见还是不可见的法捷耶夫简介,如果可见则进行懒加载 *** 阅读全文

posted @ 2016-11-23 09:32 法捷耶夫 阅读 (136677) 评论 (1)编辑


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/tougao/11506077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存