请求(需要发送数据给别人):

URL url = new URL("需要请求的URL连接");

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

// 以POST或GET方式通信

conn.setRequestMethod("POST");

// 设置连接超时时间

httpConnection.setConnectTimeout(this.timeOut * 1000);

// User-Agent

httpConnection.setRequestProperty("User-Agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)");

// 不使用缓存

httpConnection.setUseCaches(false);

// 允许输入输出

httpConnection.setDoInput(true);

httpConnection.setDoOutput(true);

// Content-Type

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

// 取得输出流

BufferedOutputStream out = new BufferedOutputStream(conn.getOutputStream());

// 长度以1KB为单位进行写

final int len = 1024;

// 将要输出的字符通过流做输出

String postData = "需要POST出去的数据";

byte[] outData = postData.getBytes(this.charset);

int dataLen = outData.length;

int off = 0;

// 以1KB为单位写

while (off < dataLen) {

if (len >= dataLen) {

out.write(outData, off, dataLen);

} else {

out.write(outData, off, len);

}

// 刷新缓冲区

out.flush();

off += len;

dataLen -= len;

}

// 关闭流

out.close();

// 取得应答码

int respCode = conn.getResponseCode();

// 取得返回的输入流

InputStream inputStream = conn.getInputStream();

接收(接收请求数据并应答):

// 取得输入流

InputStream in = request.getInputStream();

// 使用Reader取得输入流数据

BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));

// 将Reader转成字符串

String temp;

StringBuffer sb = new StringBuffer();

while (null != (temp = br.readLine())) {

sb.append(temp);

}

// 取得最终收到的字符串

String originalReturnData = sb.toString();

// 应答给请求方的数据

String responseString = "收到请求之后应答的数据";

// 取得输出器

PrintWriter out = response.getWriter();

// 直接输出

out.println(responseString);

// 刷新输出

out.flush();

// 关闭输出

out.close();

[JAVA]HTTP请求应答作输入输出的更多相关文章

  1. [老老实实学WCF] 第九篇 消息通信模式(上) 请求应答与单向

    老老实实学WCF 第九篇 消息通信模式(上) 请求应答与单向 通过前两篇的学习,我们了解了服务模型的一些特性如会话和实例化,今天我们来进一步学习服务模型的另一个重要特性:消息通信模式. WCF的服务端 ...

  2. Java HTTP请求

    注意:java  http请求要放在 try catch里面,该过程是一个阻塞过程,所以需要新建一个线程进行处理 try { HttpPost request = new HttpPost(URL); ...

  3. [WCF编程]10.操作:请求/应答操作

    一.调用操作概述 WCF除了支持经典的服务端-客户端的请求/应答操作外,还提供了对其他操作类型的内建支持,包括:即发即弃的单向调用:允许服务将调用返回给客户端的双向回调:允许客户端或服务器处理大量负荷 ...

  4. WCF分布式开发步步为赢(10):请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back).

    WCF除了支持经典的请求应答(Request-Reply)模式外,还提供了什么操作调用模式,他们有什么不同以及我们如何在开发中使用这些操作调用模式.今天本节文章里会详细介绍.WCF分布式开发步步为赢( ...

  5. java读取请求中body数据

    java读取请求中body数据 /** * 获取request中body数据 * * @author lifq * * 2017年2月24日 下午2:29:06 * @throws IOExcepti ...

  6. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  7. Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求

    Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,java 判断请求是不是ajax请求   Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java ...

  8. Redis 请求应答模式和往返延时 Pipelining

    Redis是一个CS结构的TCP服务器,使用”请求-应答”的模式.,客户端发起一个请求是这样的步骤: 客户端发送一个请求给服务器,然后等待服务器的响应,一般客户端使用阻塞模式来等待服务器响应. 服务器 ...

  9. 解决Fiddler不能监听Java HttpURLConnection请求的方法

    在默认情况下,Fiddler不能监听Java HttpURLConnection请求.究其原因,Java的网络通信协议栈可能浏览器的通信协议栈略有区别,Fiddler监听Http请求的原理是 在应用程 ...

随机推荐

  1. 教你一招:Win10系统如何正确卸载edge浏览器?

    Edge浏览器作为Win10系统默认浏览器,尽管我们将其他浏览器设置为默认程序,但是有时候还是会自动弹出,非常的不爽,但是在控制面板中却又找不到卸载“Edge”浏览器的选项.下面小编就教大家卸载“Ed ...

  2. Python 从零学起(纯基础) 笔记 之 深浅拷贝

    深浅拷贝 1. import  copy#浅拷贝copy.copy()#深拷贝copy.deepcopy()#赋值 = 2.   对于数字和字符串而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个 ...

  3. nginx文件管理

    管理文件下载nginx 可以自己实现,无需写代码即可: 修改配置文件: location /doc { autoindex on; autoindex_exact_size on; autoindex ...

  4. 【BZOJ-2325】道馆之战 树链剖分 + 线段树

    2325: [ZJOI2011]道馆之战 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 1153  Solved: 421[Submit][Statu ...

  5. BZOJ4520 [Cqoi2016]K远点对

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  6. POJ 2942 Knights of the Round Table

    Knights of the Round Table Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 10911   Acce ...

  7. WPF DataGrid绑定到数据源的方法

    string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["str"].Connect ...

  8. 10月24日下午PHP封装

    class Ren { private $name; private $sex; private $age;//年龄必须在18-50岁之间 function __construct($n) { $th ...

  9. Node.js入门笔记(1):基本概念

    Node.js和JavaScript: 核心都是ECMAScrit,比如数据类型,语法结构,内置对象等等. 但是在js中顶层是window 在node中的不存在这个window(console.log ...

  10. Java Web 学习链接

    解决JSP中文乱码问题:http://www.cnblogs.com/chengkai/articles/2171848.html 编程思想之多线程与多进程:http://blog.csdn.net/ ...