在安卓中我们使用HttpURLConnection来进行请求

我们看主activity的代码:public class TestHttpActivity extends Activity implements AdapterView.OnItemClickListener {

public static final String TAG = TestHttpActivity.class.getSimpleName();

private ArrayList mBookArrayList;

private BookMainAdapter mBookMainAdapter;

public static void startActivity(Context context) {

Intent intent = new Intent();

intent.setClass(context,TestHttpActivity.class);

context.startActivity(intent);

}

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.feeds_main);

initTitle();

ListView listView = (ListView) findViewById(R.id.news_home_listview);

mBookMainAdapter = new BookMainAdapter(this);

listView.setAdapter(mBookMainAdapter);

listView.setOnItemClickListener(this);

}

@Override

protected void onResume() {

super.onResume();

new InitDataAsyncTask().execute();

}

private void initTitle() {

TitleBarCommon titleBarCommon = (TitleBarCommon)findViewById(R.id.head_common_layout);

titleBarCommon.setRightTextViewString("增加");

titleBarCommon.setRightTextViewListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

BookDetail.startActivity(TestHttpActivity.this,null);

}

});

}

private class InitDataAsyncTask extends AsyncTask {

@Override

protected Void doInBackground(Void... params) {

HttpUtil httpUtil = new HttpUtil();

String url = "http://139.199.89.89/api/v1/books";

String response = httpUtil.get(TestHttpActivity.this,url);

Log.d(TAG,"response="+response);

parseResponse(response);

return null;

}

@Override

protected void onPostExecute(Void aVoid) {

super.onPostExecute(aVoid);

Log.d(TAG,"<<<<

mBookMainAdapter.setList(mBookArrayList);

}

}

private void parseResponse(String response) {

try{

Gson gson = new Gson();

JSONArray jsonArray = new JSONArray(response);

ArrayList books;

mBookArrayList = new Gson().fromJson(response, new TypeToken>(){}.getType());

}catch (Exception ex) {

ex.printStackTrace();

}

}

@Override

public void onItemClick(AdapterView> parent, View view, int position, long id) {

Book book = mBookArrayList.get(position);

BookDetail.startActivity(TestHttpActivity.this,book);

}

}

注意所有的网络请求都要放到子线程中,不然会报错

xml:<?xml  version="1.0" encoding="utf-8"?>

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@color/white_a"

xmlns:tools="http://schemas.android.com/tools"

android:orientation="vertical">

android:id="@+id/head_common_layout"

android:layout_width="match_parent"

android:layout_height="44dp"

android:background="@color/red_bn"

android:gravity="center_vertical"/>

android:id="@+id/news_home_listview"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:divider="@null"

android:fadingEdge="none"

android:footerDividersEnabled="true"

android:listSelector="@color/trans_color"

android:scrollbars="none"

android:scrollingCache="false" />

看Get操作:public String get(Context context, final String strUrl) {

URL getUrl = null;

try {

getUrl = new URL(strUrl);

} catch (MalformedURLException ex) {

Log.e("HttpUtil", "get MalformedURL", ex);

return null;

}

InputStream input = null;

ByteArrayOutputStream byteOutStream = null;

HttpURLConnection conn = null;

byte[] outData = null;

try {

conn = getConnection(context, getUrl);

connection = conn;

conn.setConnectTimeout(TIMEOUT);

conn.setReadTimeout(TIMEOUT);

conn.setDoInput(true);

conn.connect();

input = conn.getInputStream();

String webcontent = null;

byteOutStream = new ByteArrayOutputStream();

//byte[] buf = new byte[BUF_LEN];

int i = 0;

while((i = input.read(tmpBuf)) != -1){

byteOutStream.write(tmpBuf, 0, i);

}

outData = byteOutStream.toByteArray();

if(outData != null && outData.length > 0){

webcontent = new String(outData);

}

return webcontent;

} catch (Exception ex) {

Log.e("HttpUtil", "get", ex);

//return ex.getMessage();

} finally {

try{

outData = null;

if(input != null){

input.close();

input = null;

}

if(byteOutStream != null){

byteOutStream.close();

byteOutStream = null;

}

if(conn != null){

conn.disconnect();

conn = null;

}

} catch(Exception ex){

Log.e("HttpUtil", "get finally", ex);

//return ex.getMessage();

}

}

return null;

}

android 增删改查错误,安卓中使用HttpURLConnection进行增删改查操作(包括后端讲解)(一)...相关推荐

  1. android的适配器作用,适配器模式安卓中的应用

    安卓里面经常用到的控件Recycleview和ListView我们经常会写adapter,很直观,就是适配器的意思,关于适配器简单的例子很多,这里晚上找到的随便给一个,例子来源于这篇文章 160117 ...

  2. android商店账号密码错误,安卓:我失去了我的安卓密钥商店,我该怎么办?

    大家都说过,你绝对需要钥匙.没有办法解决这个问题.然而,您可能会惊讶于数据恢复软件可以有多好,以及关键可能在您的系统上停留多长时间-毕竟,它是一个很小的文件,而且可能还没有被覆盖.在这两方面,我都感到 ...

  3. 易生活评论功能android,易生活(二)-APP—安卓中评论功能的实现

    如何实现点击"评论"之后跳出拼音输入法,代码如下: /** * 显示或隐藏输入法 */ private void onFocusChange(boolean hasFocus) { ...

  4. 【Android游戏开发之八】游戏中添加音频-详解MediaPlayer与SoundPoo!并讲解两者的区别和游戏中的用途!...

    为什么80%的码农都做不了架构师?>>>     李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接:  http://www.himigam ...

  5. 【安卓中的缓存策略系列】安卓缓存策略之综合应用ImageLoader实现照片墙的效果

    在前面的[安卓缓存策略系列]安卓缓存之内存缓存LruCache和[安卓缓存策略系列]安卓缓存策略之磁盘缓存DiskLruCache这两篇博客中已经将安卓中的缓存策略的理论知识进行过详细讲解,还没看过这 ...

  6. 动态网站作业4-JSP中实现数据库的增删改查的操作

    动态网站作业4-JSP中实现数据库的增删改查的操作 用Statement向数据库中添加元素 1.创建JavaBean–UserBean package com.media.bean;public cl ...

  7. java list集合增删改_Java中集合类list的增删改查

    今天给大家带来的是Java中list类的使用,java.util 包提供了list类来对线性数据操作 List接口是Collection接口的子接口,List有一个重要的实现类--ArrayList类 ...

  8. 如何 增删改查 XML文件中的元素

    如何 增删改查 XML文件中的元素 students.xml 文件如下: <?xml version="1.0" encoding="UTF-8" sta ...

  9. java对数据库的增删改查_在java中对数据库进行增删改查

    代码区域: package com.oracle.jdbc.demo1; import java.sql.Connection; import java.sql.DriverManager; impo ...

最新文章

  1. SVG 基本知识:SVG 放大缩小之 viewbox 初探 (1)
  2. Everything排除某个目录、隐藏文件、系统文件
  3. 代码管理平台之svn
  4. Arthas 使用的各类方式
  5. 美国空军开发新型机载网络技术
  6. 牛市该理智还是疯狂?python+BI可视化的股票分析,都是你想看的
  7. Cisco路由器上传和下载IOS
  8. python绘制密度图
  9. vue3快速上手(尚硅谷视频笔记)
  10. uc手机浏览器 手机模拟_在PC上测试移动端网站和模拟手机浏览器的5大方法
  11. 使用特征传播重构缺失数据进行图机器学习
  12. android连接wifi不能上网,手机wifi连接上但不能上网怎么办
  13. 农业区块链 - 区块链在农林渔食品业的落地场景及案例汇编
  14. simpson积分公式
  15. 数字化转型 — 新能源汽车 — 生产制造流程 — 总装车间
  16. 计算机考研各科目分值分布,2019考研各科目试卷分值分布及结构分析
  17. OpencCV制作相框效果
  18. 天平应什么放置_天平的使用规程
  19. c语言冗余数据什么意思,冗余是什么意思_冗余解释和意思
  20. mongoose http服务器对TCP流的接收处理

热门文章

  1. ORACLE 中ROWNUM用法总结(转载)
  2. 《SilverLight2快速入门》之基本控件DataGrid
  3. ADO.NET Entity Framework支持多Provider
  4. Linux 命令(15)—— umask 命令(builtin)
  5. 前端处理方式:特殊格式时间转换(2020-11-27T02:58:41.000000Z)
  6. 《Linux 性能及调优指南》1.4 硬盘I/O子系统
  7. Codeforces Round #879 (Div. 2) C. Short Program
  8. 告别复杂WCF扩展 REST过程 ,让他 so easy
  9. 10 个步骤让你成为高效的 Web 开发者
  10. debugfs查看文件块号,dd命令读指定块号的内容