android post 请求返回的数据格式,android使用url connection示例(get和post数据获取返回数据)...

package com.act262.whpj.utils;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintStream;

import java.io.PrintWriter;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

import java.util.Date;

import android.os.Environment;

import android.util.PrintStreamPrinter;

/**

* 用于get或者post数据

*/

public class GetPostUtil {

public static final String TAG = "GetPostUtil Debug";

/**

* @param url

*            传入的url,包括了查询参数

* @return 返回get后的数据

*/

public static String sendGet(String url) {

String result = "";

// String

URL realURL = null;

URLConnection conn = null;

BufferedReader bufReader = null;

String line = "";

try {

realURL = new URL(url);

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("url 格式错误");

}

try {

conn = realURL.openConnection();

// 设置连接参数...conn.setRequestProperty("xx", "xx");

conn.setConnectTimeout(10000); // 10s timeout

// conn.setRequestProperty("accept", "*/*");

// conn.setRequestProperty("", "");

conn.connect(); // 连接就把参数送出去了 get方法

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("连接错误");

}

try {

bufReader = new BufferedReader(new InputStreamReader(

conn.getInputStream(), "gb2312"));

while ((line = bufReader.readLine()) != null) {

result += line + "\n";

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("读取数据错误");

} finally {

// 释放资源

if (bufReader != null) {

try {

bufReader.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

return result;

}

/**

* @param url

* @param param

*            查询参数 ,形式如 name=xx&age=xx&sex=xx

* @return

*/

public static String sendGet(String url, String param) {

return sendGet(url + "?" + param);

}

/**

* @param url

*            指定的url,不包括查询参数

* @param param

*            查询参数 形式如 name=xx&age=xx&sex=xx

* @return 返回post后的数据

*/

public static String sendPost(String url, String param) {

String result = "";

URL realURL = null;

BufferedReader bufReader = null;

// PrintWriter printWriter = null;

PrintStreamPrinter out = null;

URLConnection connection = null;

String line = "";

try {

realURL = new URL(url);

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

connection = realURL.openConnection();

// 设置为可输入输出 post的模式,而且在输出之前不能获取输入的数据,否则报错

connection.setDoOutput(true);

connection.setDoOutput(true);

// 已经连接了,所以不能再用connect(),否则报错的

out = new PrintStreamPrinter(new PrintStream(

connection.getOutputStream()));

out.println(param);

//

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

bufReader = new BufferedReader(new InputStreamReader(

connection.getInputStream(), "gb2312"));

while ((line = bufReader.readLine()) != null) {

result += line + "\n";

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

// 释放资源

try {

if (bufReader != null) {

bufReader.close();

}

if (out != null) {

//

}

} catch (IOException e2) {

// TODO: handle exception

}

}

return result;

}

public static void saveFile(String content) {

File file = new File(Environment.getExternalStorageDirectory()

.getAbsolutePath(), "file.html");

if (!file.exists()) {

try {

boolean status = file.createNewFile();

System.out.println("is create new file :" + status);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

PrintWriter pw = null;

try {

FileWriter fw = new FileWriter(file);

// pw = new PrintWriter(new Date() + ".html");

// pw.println(content);

fw.write(content);

fw.flush();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

if (pw != null) {

pw.close();

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,Android 中可以使用 HttpURLConnection 类来进行 HTTP 请求的发送,以下是一个简单的封装示例: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class HttpUtil { public static String sendHttpRequest(String urlStr, String method, String data) { HttpURLConnection connection = null; BufferedReader reader = null; try { URL url = new URL(urlStr); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(method); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.setDoInput(true); connection.setDoOutput(true); if (method.equals("POST")) { OutputStream outputStream = connection.getOutputStream(); outputStream.write(data.getBytes()); outputStream.flush(); outputStream.close(); } InputStream inputStream = connection.getInputStream(); reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder response = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { response.append(line); } return response.toString(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } if (connection != null) { connection.disconnect(); } } return null; } } ``` 您可以使用 `sendHttpRequest` 方法来发送 HTTP 请求,需要传入请求URL请求方法(GET 或 POST)以及请求数据(如果是 POST 请求)。方法会返回响应的数据。例如,发送一个 GET 请求: ```java String response = HttpUtil.sendHttpRequest("http://www.example.com/api", "GET", null); ``` 发送一个 POST 请求: ```java String data = "param1=value1&param2=value2"; String response = HttpUtil.sendHttpRequest("http://www.example.com/api", "POST", data); ``` 当然,上面的代码只是一个简单的封装示例,实际应用中需要进行更多的参数校验、错误处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值