Android网络编程http派/申请服务
在实际的应用程序的开发非常需要时间appserver请求数据,那么app怎样发送请求呢?以下的代码就是当中的一种情况。使用HttpURLConnection向server发送请求的数据,然后处理server返回的数据。
以下的代码仅仅是client的一个简答測试代码。还须要在pc上安装一个 tomcatserver ,然后将demo中的jsp文件部署到tomcat上。详细的方法百度一下便知。
package com.lee.nethttp; import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL; import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; public class MainActivity extends Activity { private EditText mEditText = null;
private Button mButton = null;
private TextView mTextView = null; private String mUrl = "http://192.168.0.109:8080/lee/index.jsp";//依据自己主机的ip设置 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mEditText = (EditText) findViewById(R.id.edit);
mButton = (Button) findViewById(R.id.button);
mButton.setOnClickListener(mButtonClickListener);
mTextView = (TextView) findViewById(R.id.text); } private OnClickListener mButtonClickListener = new OnClickListener() { @Override
public void onClick(View v) {
String content = mEditText.getText().toString();
content = toBase64(content);
String[] params = { content };
new NetHttpAsyncTask().execute(params);
}
}; private class NetHttpAsyncTask extends AsyncTask<String, Void, String> { @Override
protected String doInBackground(String... params) {
String result = null; try {
URL url = new URL(mUrl);
HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestProperty("Content-type",
"application/x-www-form-urlencoded;charset=UTF-8");
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000); PrintWriter writer = new PrintWriter(connection.getOutputStream());
String str = "content" + "=" + params[0];
writer.print(str);
writer.flush();
writer.close(); InputStream input = connection.getInputStream();
ByteArrayOutputStream outputBuffer = new ByteArrayOutputStream();
int ch;
while((ch = input.read()) != -1){
outputBuffer.write(ch);
} result = outputBuffer.toString();
} catch (IOException e) {
e.printStackTrace();
} return result;
} @Override
protected void onPostExecute(String result) {
mTextView.setText(result);
}
} private String toBase64(String content){
try {
content = Base64.encodeToString(content.getBytes("UTF-8"), Base64.DEFAULT);
Log.e("lee", "toBase64 content = " + content);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} return content;
}
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
Android网络编程http派/申请服务的更多相关文章
- Android网络编程概述
Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包 ...
- Android网络编程基础
Android网络编程只TCP通信 TCP 服务器端工作的主要步骤如下.步骤1 调用ServerSocket(int port)创建一个ServerSocket,并绑定到指定端口上.步骤2 调用acc ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- Android网络编程系列 一 Socket抽象层
在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽 ...
- Android 网络编程 Socket
1.服务端开发 创建一个Java程序 public class MyServer { // 定义保存所有的Socket,与客户端建立连接得到一个Socket public static List< ...
- Android网络编程要学的东西与Http协议学习
本节引言: 本节开始我们来学习Android网络编程相关的一些东西:Android端网络编程是要干嘛?http协议的学习,使用自带扣脚Json解析类解析Json,XML解析常用的几种方式,HttpUr ...
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...
- Android网络编程(一)HTTP协议原理
相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley使用方法全解析 A ...
随机推荐
- 十分钟开发一个调用Activity的PhoneGap插件
在HybridApp开发中,非常多业务我们是没有办法通过HTML5+js实现的,比方调用第三方的包括Activity的jar包,一些必须使用原生代码才干实现的功能,比方复杂的UI的效果,调用通讯相关的 ...
- SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】
注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈,你的鼓舞是我创作的最大动力.LinusZhu在此表示十分感谢,当然文章中如有纰漏.请联系linusz ...
- Linux下的链接文件
整理自<鸟哥的Linux私房菜>,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/ Linux中的链接文件分为两种:硬链接和软链接.软链接(symbol ...
- CF437D(The Child and Zoo)最小生成树
题目: D. The Child and Zoo time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- Twenty Newsgroups Classification任务之二seq2sparse(2)
接上篇,SequenceFileTokenizerMapper的输出文件在/home/mahout/mahout-work-mahout0/20news-vectors/tokenized-docum ...
- Perl入门(四)Perl的正則表達式
正則表達式是Perl语言的特色.主要的语法不是非常难,可是编写一个符合需求.高效的正則表達式.还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正則表達式内容/; 作用:查找匹配内容中是 ...
- Python IDLE 快捷键
Python IDLE 快捷键 编辑状态时: Ctrl + [ .Ctrl + ] 缩进代码 Alt+3 Alt+4 注释.取消注释代码行 Alt+5 Alt+6 切换缩进方式 空格<=> ...
- javacsript (十) 数据类型
类型声明的时候,直接使用 var varname=xxx 数字.字符.布尔,声明都直接使用var就可以, JavaScript 数组 下面的代码创建名为 cars 的数组: var cars=new ...
- 4种Delphi IDE的调试时查看内存的方法,太酷了!
1.ctrl+alt+m,可以查看每个函数过程的内存位置 2.Ctrl+Alt+C 查看代码对应的汇编 3.原来用delphi看变量信息一直是简单的用watch看,但是有时候变量值直接用特定类型看总是 ...
- 参加2013中国软件开发者大会(SDCC)会,听软件开发趋势
1.SDCC 盛大召开的会议,既然参加了,就写篇博客记一下. 2.蒋公子 首先向大会主席台走来的是csdn老大...... 额,好像不是走过来的.蒋涛采用了个特殊的上台方式呢~ ...