最近练习一些关于发布帖子的技术,说来也简单,就学了一点皮毛吧!好了,下面就上代码吧!

首先设计服务器的访问类,大家都知道现在东西都要联网的嘛!

JSONParser的类:

public class JSONParser{
static InputStream is = null;
static String json="";
public static String PHPSESSID=null;

public JSONParser(){

}
public String makeHttpRequest(String url,String method,List<NameValuePair> params)
{
try
{
HttpPost httpPost=new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));

if(null!=PHPSESSID)
{
httpPost.setHeader("Cookie","PHPSESSID="+PHPSESSID);
}

DefaultHttpClient httpClient=new DefaultHttpClient();

HttpResponse httpResponse=httpClient.execute(httpPost);
HttpEntity httpEntity=httpResponse.getEntity();

is=httpEntity.getContent();//返回值

CookieStore mCookieStore=httpClient.getCookieStore();
List<Cookie> cookies=mCookieStore.getCookies();
for(int i=0;i<cookies.size();i++){
if("PHPSESSID".equals(cookies.get(i).getName())){
PHPSESSID=cookies.get(i).getValue();
break;
}
}
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}catch(ClientProtocolException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
try{
//从JSON输入流中读取信息
BufferedReader reader=new BufferedReader(new InputStreamReader(is,"UTF-8"));

StringBuilder sb=new StringBuilder();
String line=null;

while((line=reader.readLine())!=null){
sb.append(line+"\n");
}

is.close();
json=sb.toString();//把JSON对象转换成为字符串
}
catch(Exception e)
{
e.printStackTrace();
}
return json;

}

这是发布帖子的关键代码:

class Sendmsg extends AsyncTask<String, String, String>{

protected void onPreExecute() {
super.onPreExecute();
pdialog=new ProgressDialog(Main_Send.this);
pdialog.setMessage("正在发表...");
pdialog.setIndeterminate(false);
pdialog.setCancelable(true);
pdialog.show();
}

protected String doInBackground(String... arg0) {

List<NameValuePair> params=new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("text_title", text_title));
params.add(new BasicNameValuePair("text_content", text_content));
params.add(new BasicNameValuePair("text_zuozhe", text_zuozhe));
try{
jsonData=jsonpaeser.makeHttpRequest(url, "POST", params);
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}

这是获取帖子的关键代码,采用的是json的解析:

class Getmsg extends AsyncTask<String, String, String>{

protected String doInBackground(String... arg0) {
notes.clear();
jsonData=callgetnotice.makeHttpRequest();
try{
JSONArray array=new JSONArray(jsonData);
Note_Entity noteentity;

for(int i=0;i<array.length();i++){
noteentity=new Note_Entity();
JSONObject json=array.getJSONObject(i);
noteentity.setId(json.getString("id"));
noteentity.setTitle(json.getString("title"));
noteentity.setContent(json.getString("content"));
noteentity.setZuozhe(json.getString("zuozhe"));
noteentity.setDate(json.getString("date"));
noteentity.setTime(json.getString("time"));
notes.add(noteentity);
}

}catch(Exception e)
{
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String result) {
adapter=new NoteAdapter(notes, Main_Note.this);
listview.setAdapter(adapter);
}
}

以上就是关于帖子的发布以及获取帖子的关键代码,只要清楚的理解代码,想必你也可以弄出来的。

采用都是异步发布,异步获取,然后用listview显示出来。数据库方面,就是几个库,自己弄得还是比较粗糙和简单。接下来打算学一下下拉刷新,还有图文等等。

android发布帖子类技术的更多相关文章

  1. 微信团队分享:Kotlin渐被认可,Android版微信的技术尝鲜之旅

    本文由微信开发团队工程是由“oneliang”原创发表于WeMobileDev公众号,内容稍有改动. 1.引言   Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发( ...

  2. Android开发60条技术经验总结

    Android开发60条技术经验总结,以下是全文: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有 ...

  3. Android 常见工具类封装

    1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...

  4. Android中直播视频技术探究之---基础知识大纲介绍

    一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更 ...

  5. Android实现XML解析技术

    转载:Android实现XML解析技术 本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为 ...

  6. Android实现数据存储技术

    转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...

  7. Android中Java反射技术的使用示例

    import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...

  8. Android 开发60条技术经验总结(转)

    Android 开发60条技术经验总结: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 2. ...

  9. android平台短视频技术之 视频编辑的经验分享.

    android平台短视频技术之 视频编辑的经验分享. 提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意. ...

随机推荐

  1. wxpython CustomTreeCtrl

    转自 http://xoomer.virgilio.it/infinity77/Phoenix/lib.agw.customtreectrl.CustomTreeCtrl.html这个网址中有许多控件 ...

  2. Oracle自定义行转列函数

    --行转列自定义函数,只针对TABLE1表 --paramType是参数类型,用于判断,param1和param2是条件参数 create or replace function My_concat( ...

  3. tdf sample

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  4. php 获取毫秒时间戳

    function getMsec(){//返回毫秒时间戳 $arr = explode(' ',microtime()); $hm = 0; foreach($arr as $v){ $hm += f ...

  5. JavaScript专题

    1. 在ajax的任何回调方法中,比如success回调,使用return,将会无效 2. //todo

  6. Linux xclock打不开时钟终端

    一般执行该操作的都是在安装oracle数据库或其他应用时,需要测试是否可以正常弹层执行的: 网络关于这个的描述和处理大片片的,但是符合自己实际情况的,还是需要直接去确认: 两步处理: 第一步: 使用r ...

  7. python入门24 json模块

    现在很多接口传参和响应都是json串. json.dumps()  python对象转化为json字符串 json.loads()  json字符串转化为python对象.[]转变成list,{}转变 ...

  8. bash: ./adb: No such file or directory

    运行adb出现这种错误: bash: ./adb: No such file or directory   但adb确实存在. 可能1.你用的是64位的Linux,没装32位运行时库,安装 $ sud ...

  9. 两个list相加

    >>> a = ['] >>> b = ['] >>> a+b ['] >>> a = [1,2] >>> b ...

  10. 使用maven创建项目

    http://192.168.4.112/rdmanager/main/index.jhtml 1.对于第一次下载某个项目的源码,按照下面的步骤进行: (1)在D:\projects\目录下的空白位置 ...