网站首页 > 知识剖析 正文
1.HttpURLConnection发送url请求
public class JavaRequest {
private static final String BASE_URL = "http://localhost:8080/dsdemo/";
public static String userToken = null;
public static String problemName = null;
public static String sendPost(String sufUrl, JSONObject params) {
DataOutputStream out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(BASE_URL+sufUrl);
// 打开和URL之间的连接
HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestMethod("POST"); // 设置请求方式
connection.setRequestProperty("Connection", "Keep-Alive");
connection.connect();
out = new DataOutputStream (connection.getOutputStream());
// 发送请求参数,防止中文乱码
out.write(jsonToUrlParams(params).getBytes("UTF-8"));
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!");
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
System.out.println(result);
return result;
}
private static String jsonToUrlParams(JSONObject params){
StringBuilder sb = new StringBuilder();
sb.append("userToken=").append(userToken);
for(Iterator<?> it = params.keys(); it.hasNext(); ){
String key = (String) it.next();
sb.append("&").append(key).append("=").append(params.get(key));
}
return sb.toString();
}
}
遗留问题:
a.按照网上说的发送 json格式的字符串,但是后台无法接收到。所以这里将jsonObject转化成 url 参数的形式。
b.jquery发送json格式的数据是可以接收到的。
<script type="text/javascript">
var sendData = {
username: "hjz",
password: "123"
};
(function (){
$.ajax({
type:'post',
url:'http://localhost:8080/dsdemo/userRegister',
data: sendData,
dataType:'json',
success:function(data){
alert(JSON.stringify(data));
} ,
error: function(data){
alert(JSON.stringify(data));
}
});
})();
</script>
另外可能会出现中文乱码的问题:
a. 首先发送数据利用DataOutputStream out.write(jsonToUrlParams(params).getBytes("UTF-8"));
b. 接收后台
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
私信666领取资料
猜你喜欢
- 2025-07-19 Nodejs文件上传、监听上传进度(nodejs上传文件到远程服务器)
- 2025-07-19 Springboot整合Shiro(springboot整合es)
- 2025-07-19 阿里也出个人网盘了 2TB不限速想要不
- 2025-07-19 前后端数据交互(三)——ajax 封装及调用
- 2025-07-19 在 node 中使用 jquery ajax(node javascript)
- 2025-07-19 JQuery ajax jsonp 跨域理解(js如何实现ajax跨域)
- 07-19如何解决#DIV/0! Excel 中的错误(excel div/0是什么意思)
- 07-19你知道"#VALUE!"、"#DIV/0!"等EXCEL错误值都是什么意思吗?
- 07-19Excel遇到#DIV/0、#VALUE!别慌!教你用优雅地屏蔽所有错误值!
- 07-19Excel中#DIV/0!错误详解,新手避坑指南
- 07-19Spring Boot集成OAuth2:实现安全认证与授权的详细指南
- 07-19【实用篇】收到全电发票,怎么查验真伪?
- 07-19微软Office Open XML中的数字签名漏洞
- 07-19开具红字增值税专用发票信息表出错,怎么办?
- 最近发表
-
- 如何解决#DIV/0! Excel 中的错误(excel div/0是什么意思)
- 你知道"#VALUE!"、"#DIV/0!"等EXCEL错误值都是什么意思吗?
- Excel遇到#DIV/0、#VALUE!别慌!教你用优雅地屏蔽所有错误值!
- Excel中#DIV/0!错误详解,新手避坑指南
- Spring Boot集成OAuth2:实现安全认证与授权的详细指南
- 【实用篇】收到全电发票,怎么查验真伪?
- 微软Office Open XML中的数字签名漏洞
- 开具红字增值税专用发票信息表出错,怎么办?
- SpringBoot数据校验与优雅处理详解
- 深入理解 JSR 303:数据校验在 Spring Boot 中的应用
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)