package com.ckn.web.main;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLConnection;
import javax.net.ssl.HttpsURLConnection;
public class Test2 {
public static final String JSON_ENCODE="UTF-8";
public static String post(String url,String json) {
String respText=null;
try{
//1、重新对请求报文进行 UTF-8 编码
byte[] postData=null;
postData=json.getBytes(JSON_ENCODE);
//2、发送 HTTP/HTTPS 请求
OutputStream reqStream=null;
InputStream resStream=null;
URLConnection urlCon=null;
// A、与服务器建立 HTTP/HTTPS 连接
urlCon=Test2.createRequest(url, "POST");
// B、指定报文头 [Content-type]、[Content-length]、[Keep-alive]
urlCon.setRequestProperty("Content-type", "application/json;charset="+JSON_ENCODE);
urlCon.setRequestProperty("Content-length", String.valueOf(postData.length));
urlCon.setRequestProperty("Keep-alive", "false");
// C、获取与服务器的输出流、然后向服务器写数据
reqStream=urlCon.getOutputStream();
reqStream.write(postData);
reqStream.flush();
reqStream.close();
// D、接收服务器返回结果
ByteArrayOutputStream ms=null;
resStream=urlCon.getInputStream();
ms=new ByteArrayOutputStream();
byte[] buf=new byte[4096];
int count;
while((count=resStream.read(buf, 0, buf.length))>0){
ms.write(buf, 0, count);
}
resStream.close();
respText=new String(ms.toByteArray(),JSON_ENCODE);
}catch(Exception e2){
e2.printStackTrace();
}
return respText;
}
protected static URLConnection createRequest(String urlStr, String strMethod) throws Exception{
//根据 URL 获取一个到主机连接
URLConnection conn= Test2.getRequestByUrl(urlStr);
//判断该连接是否 HTTP 连接
if(conn instanceof HttpsURLConnection || !(conn instanceof HttpURLConnection)){
throw new RuntimeException("URL 无法建立 HTTP 连接:"+urlStr);
}
//设置HTTP相关配置:提交方式
HttpURLConnection httpConn=(HttpURLConnection) conn;
httpConn.setRequestMethod(strMethod);
return conn;
}
/**
* 获取URLConnection
* @param urlStr
* @return
* @throws MalformedURLException
*/
public static URLConnection getRequestByUrl(String urlStr) throws Exception{
URL url=null;
URLConnection conn=null;
url=new URL(urlStr);
conn=url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
return conn;
}
public static void main(String[] args){
String url="http://127.0.0.1:8088/app-zht/ex/api.do?reqType=effecDateAndEndDate";
String json="[\"SHZVJ6SMHZ9U5TCLL\",\"SHZVJ6SMHZ9U5TCLL\",\"S0000000000000003\"]";
String r=post(url,json);
System.out.println(r);
}
}
- 浏览: 52294 次
- 性别:
- 来自: 北京
相关推荐
主要介绍了java模拟发送form-data的请求方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
sokit 是一款开源免费的 TCP / UDP 测试(调试)工具, 可以用来接收,发送或转发TCP/UDP数据包。 ... 客户端模式,用来连接服务器,发送...收到的数据会同时以这两种形式显示。 支持收发日志文件。 支持快捷键操作。
Send是一个库,用于以HTTP响应的形式从文件系统流式传输文件,支持部分响应(范围),条件GET协商(If-Match,If-Unmodified-Since,If-None-Match,If-Modified-Since),高测试覆盖率,以及可用于在您的应用程序...
它用于从webcam(网络摄像头)摄像头采集图像,把他们以流的形式通过基于ip的网络传输到浏览器。它可以利用某些webcams的硬件压缩功能来降低服务器CPU的开销。她为嵌入式设备和一些常规服务器提供了一个轻量且更少CPU...
一个典型的视频点播系统是由视频服务器、高速传输网络和客户端组成,服务器响应用户的点播请求,将节目数据以视频流的形式通过高速传输网络发送到用户端。视频服务器是整个视频点播系统的核心部分,选择和安装性价比...
由于TCP提供了双向的,非结构化的流,因此通常必须在应用程序级别添加一些内容来界定“消息”,将响应与请求相关联并提供某种形式的键入。 也许由于超文本传输协议(HTTP)在Internet上的普遍部署以及丰富而...
1)以命令行形式运行:SendTCP source_ip source_port dest_ip dest_port,其中SendTCP是程序名,source_ip为源端IP地址,source_port为源端口号 ,dest_ip为目的地址,dest_port为目的端口号。 2)其他的TCP头部...
在流式输出方面,项目利用了Spring框架的响应式编程特性,允许数据以连续的流形式进行处理和传输。这种方式特别适合处理大量数据或实时数据流,因为它可以有效地管理内存使用,同时保持应用的响应性。通过这种方式,...
客户端以操作的形式发送指令,并且流媒体发出事件以通知客户端或向客户端提供更新。 注意:Netstreamer接受和发送的有效负载默认情况下为JSON格式,但是可以通过实现PayloadFactory并将实现提供给...
图2显示了一个ARP欺骗过程,其中ARP请求以广播帧的形式发送,以获取合法用户的MAC地址。假设黑客Jimmy也在网络上,他试图获取发送到这个合法用户的信息流,黑客Jimmy欺骗ARP响应,声称自己是IP地址为 10.0.0.55(MAC...
WebSpa 是一个 Java 网络敲击工具,用于向您的网络服务器发送单个 HTTP/S 请求,以便授权在其上执行预谋的操作系统 (O/S) 命令。 如果端口敲门被定义为“一种信息跨封闭端口流动的主机到主机通信形式”,那么我们将...
Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递。在Java中,有专门的Socket类来处理用户的请求和响应。利用Socket类的方法,就可以...
当基于Python的天气预测和天气可视化项目...4. 天气可视化:使用Python的数据可视化库,如Matplotlib、Seaborn、Plotly等来创建可视化图表,将天气数据以图形的形式展现出来,比如折线图、柱状图、热力图等。 以下是一
责页面的展示,把数据以恰当的形式呈现给用户。用户的各种操作请求发送到后端,后 端收到请求并处理相应的请求,将结果返回给前端。前端和后端通过 JSON 交互。 本次毕业设计模拟国内主流的在线视频播放网站爱奇艺、...
一般的爬虫套路无非是发送请求、获取响应、解析网页、提取数据、保存数据等步骤。构造请求主要用到requests库,定位提取数据 用的比较多的有xpath和正则匹配。一个完整的爬虫,代码量少则几十行,多则百来行,对于...
在白天或晚上的任何时间发送请求请求或打开问题。 请在您的问题之前加上[language/lang-code]标签,然后提出请求。 例如, [python/en]用于英语Python。 这将帮助每个人挑选他们关心的事情。 我们很高兴以任何...
发送网络请求->将图片以流的形式下载下来->将流转换为Bitmap并赋给ImageView控件。 注意点 最新的Android系统不可以在主线程上请求网络,需要使用线程来请求 下载图片属于耗时任务,最优做法是放在一个AsyncTask中...
采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库...
官方SignNow API客户端v1.8.2 SignNow Node.js REST API包装器目录发送验证电子邮件检索用户信息OAuth 2.0 请求访问令牌验证访问令牌刷新访问令牌文档检索用户文档列表检索文档资源下载折叠的文档上载文件上传文件和...
采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库...