博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpUrlConnection发送url请求(后台springmvc)
阅读量:6274 次
发布时间:2019-06-22

本文共 2656 字,大约阅读时间需要 8 分钟。

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格式的数据是可以接收到的。

 

另外可能会出现中文乱码的问题:

  a. 首先发送数据利用DataOutputStream out.write(jsonToUrlParams(params).getBytes("UTF-8"));

  b. 接收后台  response.setCharacterEncoding("utf-8");

              request.setCharacterEncoding("utf-8");

本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/5473254.html,如需转载请自行联系原作者
你可能感兴趣的文章
Linux_DHCP服务搭建
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
网吧维护工具
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>
Android程序开发初级教程(一) 开始 Hello Android
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>
nginx反向代理
查看>>