您的位置:首页 > 移动开发 > Android开发

android 通过post提交数据,并打印结果在手机上

2014-05-30 17:55 330 查看
下面代码可用,调用方法

Map<String, String> params = new HashMap<String, String>();

params.put("name", username); username为string型,下同

params.put("text", password);

String str=HttpUtils.submitPostData(params, "gb2312");//str为网页out.print输出的值

package com.example.tony;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLEncoder;

import java.util.Map;

import android.util.Log;

public class HttpUtils {

public static String submitPostData(Map<String, String> params, String encode) {

URL url = null;

try {

url = new URL("http://192.168.191.1/liuyanban/servlet/phoneservlet");

//url = new URL("http://192.168.191.1/post/myServlet/PassParams");

//url = new URL("http://192.168.191.1/liuyanban/2.jsp");

} catch (MalformedURLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

byte[] data = getRequestData(params, encode).toString().getBytes();//获得请求体

try {

HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();

httpURLConnection.setConnectTimeout(3000); //设置连接超时时间

httpURLConnection.setDoInput(true); //打开输入流,以便从服务器获取数据

httpURLConnection.setDoOutput(true); //打开输出流,以便向服务器提交数据

httpURLConnection.setRequestMethod("POST"); //设置以Post方式提交数据

httpURLConnection.setUseCaches(false); //使用Post方式不能使用缓存

//设置请求体的类型是文本类型

httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

//设置请求体的长度

httpURLConnection.setRequestProperty("Content-Length", String.valueOf(data.length));

//获得输出流,向服务器写入数据

OutputStream outputStream = httpURLConnection.getOutputStream();

outputStream.write(data);

int response = httpURLConnection.getResponseCode(); //获得服务器的响应码

if(response == HttpURLConnection.HTTP_OK) {

InputStream inptStream = httpURLConnection.getInputStream();

return dealResponseResult(inptStream); //处理服务器的响应结果

}

} catch (IOException e) {

e.printStackTrace();

}

return "";

}

/*

* Function : 封装请求体信息

* Param : params请求体内容,encode编码格式

* Author : 博客园-依旧淡然

*/

public static StringBuffer getRequestData(Map<String, String> params, String encode) {

StringBuffer stringBuffer = new StringBuffer(); //存储封装好的请求体信息

try {

for(Map.Entry<String, String> entry : params.entrySet()) {

stringBuffer.append(entry.getKey())

.append("=")

.append(URLEncoder.encode(entry.getValue(), encode))

.append("&");

}

stringBuffer.deleteCharAt(stringBuffer.length() - 1); //删除最后的一个"&"

} catch (Exception e) {

e.printStackTrace();

}

return stringBuffer;

}

/*

* Function : 处理服务器的响应结果(将输入流转化成字符串)

* Param : inputStream服务器的响应输入流

* Author : 博客园-依旧淡然

*/

public static String dealResponseResult(InputStream inputStream) {

String resultData = null; //存储处理结果

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

byte[] data = new byte[1024];

int len = 0;

try {

while((len = inputStream.read(data)) != -1) {

byteArrayOutputStream.write(data, 0, len);

}

} catch (IOException e) {

e.printStackTrace();

}

resultData = new String(byteArrayOutputStream.toByteArray());

return resultData;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: