android发布帖子类技术
最近练习一些关于发布帖子的技术,说来也简单,就学了一点皮毛吧!好了,下面就上代码吧!
首先设计服务器的访问类,大家都知道现在东西都要联网的嘛!
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发布帖子类技术的更多相关文章
- 微信团队分享:Kotlin渐被认可,Android版微信的技术尝鲜之旅
本文由微信开发团队工程是由“oneliang”原创发表于WeMobileDev公众号,内容稍有改动. 1.引言 Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发( ...
- Android开发60条技术经验总结
Android开发60条技术经验总结,以下是全文: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有 ...
- Android 常见工具类封装
1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...
- Android中直播视频技术探究之---基础知识大纲介绍
一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更 ...
- Android实现XML解析技术
转载:Android实现XML解析技术 本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为 ...
- Android实现数据存储技术
转载:Android实现数据存储技术 本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用Shar ...
- Android中Java反射技术的使用示例
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...
- Android 开发60条技术经验总结(转)
Android 开发60条技术经验总结: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 2. ...
- android平台短视频技术之 视频编辑的经验分享.
android平台短视频技术之 视频编辑的经验分享. 提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意. ...
随机推荐
- js 常用排序整理
排序: 1. 内部排序: (1). 交换排序: 1). 冒泡排序 稳定 一次比较相邻两个元素的大小,顺序错误的,将其位置互换 (从高位到低位 或者 从低位到高位) 初始版: var array = [ ...
- 亲测可用:SecureCRT 7 注册码/序列号
Name: ygeR Company:TEAM ZWT SerialNumber:03-77-119256 License Key: ABH2MJ 9YVAC5 Z17QF7 4ZAS7Z ABGYJ ...
- 安装adobe,路径My Pictures或卷无效。请重新输入。
问题:安装adobe reader时,路径My Pictures或卷无效.请重新输入.我的光驱是D盘.因为是在虚拟机下安装的xp系统. 解决办法: GHOST WINXP2 My Pictures一般 ...
- 微软开源 PowerShell 并支持 Linux 和 OS X
微软近日宣布开源 PowerShell,开始支持 Linux 和 OSX.PowerShell 是面向 Windows 和 Windows Server 的自动化平台和可扩展脚本语言,可帮助用户简化系 ...
- 【Leetcode】【Medium】Single Number
Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...
- 【Leetcode】【Easy】Remove Nth Node From End of List
Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...
- 如何将BSP应用配置成Fiori Launchpad上的一个tile
当我们通过WebIDE或者Eclipse的插件Team Provider把一个本地开发好的UI5应用部署到了ABAP Netweaver服务器上之后,我们可以将该UI5应用配置成Fiori launc ...
- flume-ng 自定义sink消费flume source
如何从一个已经存在的Flume source消费数据 1.下载flume wget http://www.apache.org/dist/flume/stable/apache-flume-1.5.2 ...
- POJ 1190 生日蛋糕 【DFS + 极限剪枝】
题目传送门:http://poj.org/problem?id=1190 参考剪枝:https://blog.csdn.net/nvfumayx/article/details/6653111 生日蛋 ...
- 记一次msfconsole_android渗透实验
1>查看本机IP 2>生成App木马 3>将生成的木马安装至手机 4>打开msfconsole 1, use exploit/multi/handler 加载模块. 2, ...