HttpUrlConnection发送url请求(后台springmvc)

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");

转载于:https://www.cnblogs.com/hujunzheng/p/5473254.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springmvc+jpa实现分页的两种方式

1.工具类 public final class QueryTool {public static PageRequest buildPageRequest(int pageNumber, int pageSize, String sortType){Sort sort null;if("auto".equals(sortType)) {sort new Sort(Direction.DESC, "ctime");} else {sort new Sort…

不使用session,借助redis实现验证码

1.首先看一下基本的流程 2.看一下代码 注&#xff1a;其中用到的一些工具类&#xff0c;可以到我的github上去下载 https://github.com/hjzgg/usually_util/tree/master/utils windows 下的 redis下载 https://github.com/hjzgg/redis 获取验证码的tooken RequestMapping(value…

PS批处理的使用

一、 前言 做开发的时候&#xff0c;最多的时候就是图片的使用了。有时候图片的处理都按照同样的步骤&#xff0c;比如说统一将图片的大小调整为固定大小&#xff0c;或者统一在所有的图片的的某个位置上加入文字或者小图片等等&#xff0c;这时候PS的批处理可以帮你完成这些重…

exe4j的使用

下载&#xff1a;http://download.cnet.com/exe4j/3000-2070_4-144405.html 参考&#xff1a;http://blog.chinaunix.net/uid-25749806-id-4380850.html 注&#xff1a;打包成jar包的一般就是src目录&#xff0c;其他目录放到目标文件夹中&#xff0c;目录结构如下 如何解决exe…

c语言指针和数组的联系

c语言指针与数组**一、指针与一维数组**1.一维数组的存储方式2. 对一维数组名的理解3. 数组下标和指针的关系4.一位数组名与取数组首地址的区别**二、指针与二维数组**1.二维数组的存储方式2.二维数组下标和指针的对应关系例题:怀着忐忑的心情写了人生第一篇博客......诚惶诚恐…

android模拟器默认位置的修改

1.创建ANDROID_SDK_HOME环境变量&#xff0c;如ANDROID_SDK_HOMED:\eclipse_android\android-sdk 2.在ANDROID_SDK_HOME目录下&#xff0c;建立.android目录 3.默认的avd路径是C:\Users\Administrator\.android, 将里面的内容放入到ANDROID_SDK_HOME中的.android目录下 4.windo…

python 求出4行5列的二维数组周边元素之和

题目:求出4行5列的二维数组周边元素之和 代码&#xff1a; import random x [[random.randint(1,10)for j in range(5)]for i in range(4)] for item in x:print(item) y [x[0][0],x[0][1],x[0][2],x[0][3],x[0][4],x[1][0],x[1][4],x[2][0],x[2][4],x[3][0],x[3][4]] prin…

android表白app

一、前言 马上就要520和521了&#xff0c;是不是还有像我一样的单身狗啊。我就知道有&#xff0c;所以这两天简单写了这个小程序&#xff08;其实是替别人写的&#xff09;&#xff0c;虽然我并不会用去骗女孩子&#xff08;因为最近太忙了&#xff0c;实习完之后要搞毕设&…

c语言:malloc函数的简介

文章目录一、为什么需要malloc函数&#xff1f;二、如何使用malloc函数&#xff1f;三、用malloc函数自定义数组长度一、为什么需要malloc函数&#xff1f; 用于解决传统数组以下缺点。 ①传统数组的长度必须要事先指定。 ②传统数组的内存无法手动释放。 ③传统数组的长度定义…

webpack+react+es6开发模式

一、前言 实习了两个月&#xff0c;把在公司用到的前端开发模式做个简单的整理。公司里前端开发模式webpackreactreduxes6&#xff0c;这里去掉了redux。 webpack, react, redux等学习网址&#xff1a;http://www.cnblogs.com/hujunzheng/p/5405780.html 二、简单的步骤条组件 …

c语言输入字符时控制符%c前加空格的原因解释

文章目录一、前景知识1、缓冲区2、标准输入流二、scanf语句的执行1、scanf对于整形%d的输入2、scanf对于字符%c的输入在编一个代码时偶然间发现一个知识盲点…用scanf语句输入字符时需要在控制符%c前加空格。在解释相关这个原因前我们需要了解几个相关知识点。 一、前景知识 1…

git命令分类图

转载于:https://www.cnblogs.com/hujunzheng/p/5560826.html

python中为什么没有自增或者自减

在c语言和c中我们经常会用到自增或者自减的语句&#xff0c;但对于python中如果运用这种格式便会报错…why&#xff1f; 一、预备知识 小整数池 python中为了提高储存效率&#xff0c;对于int类型的整型变量的储存&#xff0c;有一个专门的小整数池&#xff0c;它会存放-5到256…

数据结构算法模拟系统

一、前言 学习数据结构已经有很长时间了&#xff0c;加上之前搞过一段时间的ACM&#xff0c;虽然搞得并不怎么样吧&#xff0c;但是喜欢的东西不能放弃&#xff0c;一直打算写一个算法模拟系统&#xff0c;对常用的一些算法进行简单的模拟&#xff0c;于是我的毕业设计就这样诞…

python语言map函数及map object at 乱码错误

文章目录一、map函数的简介1、map函数的作用2、语法格式3、举例例1、例2、二、报错一、map函数的简介 1、map函数的作用 对某个序列以给定的函数格式作映射。 2、语法格式 map(function,iterable)   function可以填函数&#xff0c;也可以填数据类型 3、举例 例1、 a [1,2,…

推荐几款jquery图片切换插件

一、前言 毕业季到了&#xff0c;大家都在匆匆忙忙的记录大学里最美好的时光&#xff0c;照片中各种花式、各种姿势都涌现出来了。这么多的照片怎么展示出来给自己的好友看呢&#xff1f;有人选择做成视频&#xff0c;有人选择ps之后做成图片集&#xff0c;而我选择利用静态网页…

c语言表白

马上就要520了&#xff0c;不少小伙伴们一定开始想尽各种办法进行表白了…那么身为奔跑在程序员道路上的我们也一定要有独特的表白方法&#xff01; 下面是一段表白代码&#xff0c;请直接搬去用吧&#xff01;&#xff01;&#xff01; #include <stdio.h> void change…

java注意的一些细节问题

1. 大括弧作用域问题 public static void main(String[] args) {{int x;{int x;//编译错误&#xff1a;Duplicate local variable x}} } 2.boolean值的运算 public static void main(String[] args) {if(true && false) {}if(true & false) {}System.out.println(t…

python表白

马上就要520了&#xff0c;不少小伙伴们一定开始想尽各种办法进行表白了…那么身为奔跑在程序员道路上的我们也一定要有独特的表白方法&#xff01; 下面是一段表白代码&#xff0c;请直接搬去用吧&#xff01;&#xff01;&#xff01; import turtle import timedef hart_ar…

git revert和reset区别

1.在github上建立测试项目并克隆到本地 2.本地中新建两个文本文件 3.将a.txt commit并push到远程仓库 执行 git add a.txt, git commit -m "a.txt", git push 4.将b.txt提交到本地仓库&#xff0c;不执行push 通过gitk命令查看提交历史如下&#xff1a; 情景&#xf…