它可以作为一个代理server或者转发java类
2024-08-31 15:59:26
在项目中使用,这简化和通用汽车。突出的基本思路,细节可以基于此类改变。
基于java容器和servlet。
package com.xxx.first; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.compress.utils.IOUtils; public class SimpleProxy { /**
* 使用GET提交到目标server。
*
* @param request
* @param response
* @param targetUrl
* @throws IOException
*/
private void get(HttpServletRequest request, HttpServletResponse response,
String targetUrl) throws IOException { URL url = new URL(targetUrl); BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream())); String line;
PrintWriter out = response.getWriter();
while ((line = in.readLine()) != null) {
out.println(line);
}
out.flush();
in.close();
} /**
* 使用POST提交到目标server。
*
* @param request
* @param response
* @param targetUrl
* @throws IOException
*/
private void post(HttpServletRequest request, HttpServletResponse response,
String targetUrl) throws IOException {
URL url = new URL(targetUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 发送POST请求必须设置例如以下两行
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
// 能够拷贝client的head信息作为请求的head參数
// conn.setRequestProperty("Charsert", "UTF-8");
conn.setRequestProperty("Content-Type", "application/json"); // 直接把client的BODY传给目标server
OutputStream send = conn.getOutputStream();
InputStream body = request.getInputStream();
IOUtils.copy(body, send);
send.flush();
send.close();
body.close(); // 获取返回值
BufferedReader in = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
PrintWriter out = response.getWriter();
String line;
while ((line = in.readLine()) != null) {
out.println(line);
}
out.flush();
} }
最新文章
- mac下查看.mobileprovision文件及钥匙串中证书.cer文件
- iOS10 拍照崩溃问题
- H:Highways
- 一步一步教你elasticsearch在windows下的安装
- 浅谈ERP系统实施后如何完善企业内部控制制度建设
- onethink 系统函数中 生成随机加密key
- Swing-setAlignmentX()用法-入门
- Elasticsearch笔记八之脑裂
- Centos7 Nginx开机启动
- Python如何将整数转化成二进制字符串
- Java获取项目根目录等其他系统属性
- blogger添加代码高亮
- 搭建高可用的Redis服务,需要注意这些方面!
- oracle 的sqlplus 工具进行翻译的rlwrap 安装教程
- ie请求缓存问题,页面内容没有及时更新
- [转]JavaScript与元素间的抛物线轨迹运动
- 【SP1812】LCS2 - Longest Common Substring II
- [转]如何取得当前正在执行的shell脚本的绝对路径?
- ubuntu16.04下安装pycharm
- 基于非比較的排序:计数排序(countSort),桶排序(bucketSort),基数排序(radixSort)