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平台短视频技术之 视频编辑的经验分享. 提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意. ...
随机推荐
- 打杂程序员之nginx服务配置
现在公司要在服务器上多加个网站用同一个nginx服务器,而且都是公用80端口. 因为服务器上跑着好几个网站了,所以配置文件配置完成时候要检测一下能不能用,用nginx -t:最好不要直接杀死nginx ...
- SharePoint - CAML
1. CAML是顺序操作,如果要实现类似 “A or B or C or D” 的结果,最好写成 “(((A or B) or C) or D)”的形式,但写成 “((A or B) or (C or ...
- Xshell连接不上虚拟机的问题和解决办法
第一次用xshell,一直连不上linux,搞了好久,也查了很多办法,但是最后也终于解决了,在这里我分享一下自己的解决办法,再列举网上的办法,希望可以帮助其他人. 1,你的linux ip地址没有配置 ...
- matlab练习程序(广度优先搜索BFS、深度优先搜索DFS)
如此经典的算法竟一直没有单独的实现过,真是遗憾啊. 广度优先搜索在过去实现的二值图像连通区域标记和prim最小生成树算法时已经无意识的用到了,深度优先搜索倒是没用过. 这次单独的将两个算法实现出来,因 ...
- asyncio标准库6 Threads & Subprocess
Threads import asyncio def compute_pi(digits): # implementation return 3.14 async def main(loop): di ...
- Excel数据导入Sql Server,部分数字为Null
在Excel中,我们时常会碰到这样的字段(最常见的就是电话号码),即有纯数字的(如没有带区号的电话号码),又有数字和其它字符混合 (如“区号-电 话号码”)的数据,在导入SQLServer过程中,会发 ...
- sql server 数据库还原后sa连接不上原因
手动创建了一个同名数据库,然后还原以前或者别人的备份,还原虽然成功了,但是在VS中连接不上,原因可能是: 数据库的所有者中没有添加sa,方法即在数据库名上右击,然后选择文件,在所有者中添加上sa,应该 ...
- Strtus2框架使用HttpServletResponse响应数据
-----------------------------------------------------------------------------------------jsp-------- ...
- Yii 判断是不是post方式提交的数据
一.在controller里判断提交是不是通过post方式: if(Yii::$app->request->isPost){ return true; }else{ return fals ...
- linux ps -aux各列含义
常用ps -aux命令来查看进程情况,但对各列含义还有点模糊,查一下以备后用 # ps aux | moreUSER PID %CPU %MEM VSZ RSS TT ...