Browse Source

http post请求类(包含url和报文)

linh 8 years ago
parent
commit
0c937c963c

+ 116 - 0
ipu-open-platform/src/com/ai/ipu/open_platform/HttpURLConnectionHelper.java

@ -0,0 +1,116 @@
1
package com.ai.ipu.open_platform;
2

3
import java.io.BufferedReader;
4
import java.io.BufferedWriter;
5
import java.io.IOException;
6
import java.io.InputStream;
7
import java.io.InputStreamReader;
8
import java.io.OutputStream;
9
import java.io.OutputStreamWriter;
10
import java.net.URL;
11
import java.net.URLEncoder;
12
import java.util.ArrayList;
13
import java.util.List;
14

15
import javax.net.ssl.HttpsURLConnection;
16

17
import org.apache.http.NameValuePair;
18
import org.apache.http.message.BasicNameValuePair;
19

20
import android.text.TextUtils;
21
import android.util.Log;
22

23
public class HttpURLConnectionHelper {
24
	private static final String url = "http://10.1.243.24:20110/oppf?method=ABILITY_00000001&format=json&appId=1&busiSerial=1&operId=100004638522&version=3546fbdb6b1041cb4eb26339b9154e2c&accessToken=4d113372-d10a-4533-bec4-0e56e8a25062&timestamp=20140928165601&sign=1d63e3db2b2fbd2a232c5706478a69f6&openId=e2f94078-4c61-4d25-96ec-9a5aa82cb063";
25

26
	private void sendRequest(String url) throws IOException {
27
		InputStream is = null;
28
		try {
29
			URL newUrl = new URL(url);
30
			HttpsURLConnection conn = (HttpsURLConnection) newUrl
31
					.openConnection();
32
			// 设置读取超时为10秒
33
			conn.setReadTimeout(10000);
34
			// 设置连接超时为15秒
35
			conn.setConnectTimeout(15000);
36
			// 设置请求方式为POST
37
			conn.setRequestMethod("POST");
38
			// 接收输入流
39
			conn.setDoInput(true);
40
			// 启动输出流
41
			conn.setDoOutput(true);
42
			// 添加Header
43
			conn.setRequestProperty("Connection", "Keep-Alive");
44
			// 添加请求参数
45
			List<NameValuePair> paramsList = new ArrayList<NameValuePair>();
46
			paramsList.add(new BasicNameValuePair("Userld", "12345"));
47
			paramsList.add(new BasicNameValuePair("UserName", "why"));
48
			paramsList.add(new BasicNameValuePair("BillId", "233"));
49
			paramsList.add(new BasicNameValuePair("order_time", "20160126224723"));
50
			paramsList.add(new BasicNameValuePair("RegionId", "1"));
51
			paramsList.add(new BasicNameValuePair("OfferCode", "3"));
52
			paramsList.add(new BasicNameValuePair("OfferValue", "1"));
53
			
54
			writeParams(conn.getOutputStream(), paramsList);
55

56
			// 发起请求
57
			conn.connect();
58
			is = conn.getInputStream();
59

60
			// 获取结果
61
			String result = convertStreamToString(is);
62
			Log.i("", "请求结果:" + result);
63
		} finally {
64
			if (is != null) {
65
				is.close();
66
			}
67
		}
68
	}
69

70
	private void writeParams(OutputStream output, List<NameValuePair> paramsList)
71
			throws IOException {
72
		StringBuilder paramStr = new StringBuilder();
73
		for (NameValuePair pair : paramsList) {
74
			if (!TextUtils.isEmpty(paramStr)) {
75
				paramStr.append(URLEncoder.encode(pair.getName(), "UTF-8"));
76
				paramStr.append("=");
77
				paramStr.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
78
			}
79
			BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
80
					output, "UTF-8"));
81
			// 将参数写入到输入流
82
			writer.write(paramStr.toString());
83
			writer.flush();
84
			writer.close();
85
		}
86

87
	}
88

89
	/**
90
	 * 将输入流转成字符串
91
	 * 
92
	 * @param is
93
	 * @return
94
	 */
95
	public String convertStreamToString(InputStream is) {
96

97
		BufferedReader reader = new BufferedReader(new InputStreamReader(is));
98
		StringBuilder sb = new StringBuilder();
99
		String line = null;
100

101
		try {
102
			while ((line = reader.readLine()) != null) {
103
				sb.append(line + "/n");
104
			}
105
		} catch (IOException e) {
106
			e.printStackTrace();
107
		} finally {
108
			try {
109
				is.close();
110
			} catch (IOException e) {
111
				e.printStackTrace();
112
			}
113
		}
114
		return sb.toString();
115
	}
116
}