发布数据
public static void post(String url, byte [] data, String contentType) throws IOException {
HttpURLConnection connection = null;
OutputStream out = null;
InputStream in = null;
try {
connection = (HttpURLConnection) new URL(url).openConnection();
connection.setRequestProperty("Content-Type", contentType);
connection.setDoOutput(true);
out = connection.getOutputStream();
out.write(data);
out.close();
in = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
in.close();
} finally {
if (connection != null) connection.disconnect();
if (out != null) out.close();
if (in != null) in.close();
}
}
这会将数据 POST 到指定的 URL,然后逐行读取响应。
这个怎么运作
- 像往常一样,我们从
URL
获得HttpURLConnection
。 - 使用
setRequestProperty
设置内容类型,默认情况下是application/x-www-form-urlencoded
setDoOutput(true)
告诉连接我们将发送数据。- 然后我们通过调用
getOutputStream()
获取OutputStream
并将数据写入其中。完成后别忘了关闭它。 - 最后我们阅读了服务器响应。