最近的研究Android网络编程知识,这里有一些想法,今晚学习。与您分享。

在实际的应用程序的开发非常需要时间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;
}
}

Demo 下载地址

版权声明:本文博主原创文章,博客,未经同意不得转载。

Android网络编程http派/申请服务的更多相关文章

  1. Android网络编程概述

    Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包 ...

  2. Android网络编程基础

    Android网络编程只TCP通信 TCP 服务器端工作的主要步骤如下.步骤1 调用ServerSocket(int port)创建一个ServerSocket,并绑定到指定端口上.步骤2 调用acc ...

  3. Android网络编程系列 一 TCP/IP协议族

    在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...

  4. Android网络编程系列 一 Socket抽象层

     在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽 ...

  5. Android 网络编程 Socket

    1.服务端开发 创建一个Java程序 public class MyServer { // 定义保存所有的Socket,与客户端建立连接得到一个Socket public static List< ...

  6. Android网络编程要学的东西与Http协议学习

    本节引言: 本节开始我们来学习Android网络编程相关的一些东西:Android端网络编程是要干嘛?http协议的学习,使用自带扣脚Json解析类解析Json,XML解析常用的几种方式,HttpUr ...

  7. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

  8. 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api

    Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...

  9. Android网络编程(一)HTTP协议原理

    相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley使用方法全解析 A ...

随机推荐

  1. 性能测试之LoardRunner 自动关联

    1.什么是自动关联? 2.实例介绍 以下是详细介绍: 自动化关联:它是VuGen提供的自动化扫描关联处理策略,它的原理是对同一个脚本运行和录制时的服务器返回进行比较,来自动查找变化的部分,并且提示是否 ...

  2. cocos2d-x 精灵移动

    在HelloWorldScene.h中声明 class  HelloWorld :  public  cocos2d::CCLayer { public :     ......     CCPoin ...

  3. HDU 4669 Mutiples on a circle (DP , 统计)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题意:给出一个环,每个点是一个数字,取一个子串,使 ...

  4. 一个能够自己主动生成静态库,自己主动安装程序的Makefile

    .PHONY:clean install CC=g++ CFLAGS=-Wall -g BIN=libecho.a INCLUDE=echo SRC=src OBJS=Socket.o Rio.o T ...

  5. jquery特效 幻灯片效果

    jquery特效 幻灯片效果,效果图如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Cont ...

  6. HDU 4691(多校第九场1006) 后缀数组

    ...还能多说什么. 眼角一滴翔滑过. 一直以为题意是当前串与所有之前输入的串的LCP...然后就T了一整场. 扫了一眼标程突然发现他只比较输入的串和上一个串? 我心中突然有千万匹草泥马踏过. 然后随 ...

  7. 怎样取消shutdown关机命令?-shutdown命令的使用解析

    机房上课,可恶电脑总是被管理员測试,不时地弹出这个关机提示.怎样取消这个关机命令呢?其有用 shutdown -a 就可以.以下来学习一下shutdown命令的使用:   shutdown这个命令预计 ...

  8. java python oracle推断字符串是否为数字的函数

    java public boolean isNumeric(String str){ Pattern pattern = Pattern.compile("^-?[0-9]+\\.?[0-9 ...

  9. Swift - 类型嵌套(以扑克牌结构体为例)

    类型嵌套,简单来说实在一个类型中包含另外一个类型.我们拿一副扑克来说明. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 //类 ...

  10. 中介者模式 C++ 实现

    #include<iostream> #include<string> #include<vector> #include<cstdlib> using ...