HttpURLConnection 发送PUT请求 json请求体 与服务端接收

public void testHttp()
    {

        String result = "";
        try
        {
            URL postURL = new URL("http://localhost:8080/webTest/TestSerlvte");
            HttpURLConnection conn = (HttpURLConnection) postURL.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
//            conn.setConnectTimeout(5 * 1000);
            // PUT请求
            conn.setRequestMethod("PUT");
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            // json格式上传的模式
            conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
            conn.setRequestProperty("header1", "header1Text1");
            conn.setRequestProperty("header2", "header1Text2");

            String payload = "{\"appid\":6,\"appkey\":\"0cf0vGD/ClIrVmvVT/r5hEutH5M=\",\"openid\":200}";

            OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
            osw.write(payload);
            osw.flush();
            osw.close();
            System.out.println(conn.getResponseCode());
            if (conn.getResponseCode() == 200) {
                InputStreamReader isr = new InputStreamReader(conn.getInputStream());
                BufferedReader br = new BufferedReader(isr);
                String inputLine = null;
                while ((inputLine = br.readLine()) != null) {
                    result += inputLine;
                }
                isr.close();
                conn.disconnect();
            }
            else {
                //如果出错,一定要检查URL对没有!
                BufferedReader br = new BufferedReader(new InputStreamReader((conn.getErrorStream())));
                String jsontxt = br.readLine();
                br.close();
            }

            conn.disconnect();

        }
        catch (Exception e)
        {
            System.out.println(e.getMessage());
        }

    }

  

服务端:

@Override
	protected void doPut(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println("我是PUT");
		req.getHeader("header4");
		System.out.println("header4" + "----" + req.getHeader("header4"));

		ServletInputStream inputStream = req.getInputStream();

	    StringBuilder content = new StringBuilder();
	    byte[] b = new byte[req.getContentLength()];
	    int lens = -1;
	    while ((lens = inputStream.read(b)) > 0) {
	        content.append(new String(b, 0, lens));
	    }
	    String strcont = content.toString();// 内容     

		resp.setHeader("resp1", "resp1Text");
		super.doPut(req, resp);
	}

  

时间: 2024-12-20 19:10:42

HttpURLConnection 发送PUT请求 json请求体 与服务端接收的相关文章

Http学习之使用HttpURLConnection发送post和get请求(3)

使用HttpURLConnection发送post和get请求 但我们常常会碰到这样一种情况: 通过HttpURLConnection来模拟模拟用户登录Web服务器,服务器使用cookie进行用户认证.在模拟登录时,Post表单数据后可以正确登录(登陆成功时会response一个cookie,然后redirect到main page,不成功则redirect到login page),但是在使用HttpURLConnection再次连接服务器其他页面(或者即使是当前的response里是redir

Http学习之使用HttpURLConnection发送post和get请求(2)

接上节Http学习之使用HttpURLConnection发送post和get请求 本节深入学习post请求. 上 节说道,post请求的OutputStream实际上不是网络流,而是写入内存,在getInputStream中才真正把写道流里面的内容作为正文与 根据之前的配置生成的http request头合并成真正的http request,并在此时才真正向服务器发送. HttpURLConnection.setChunkedStreamingMode 函数可以改变这个模式,设置了Chunke

项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!

前言 系列文章:[传送门] 洗了个澡,准备写篇博客.然后看书了.时间 3 7 分.我慢慢规律生活,向目标靠近.  很喜欢珍惜时间像叮当猫一样 正文 慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实现签到 这次 我们实现 javaweb http json 交互 in action 题目很长,但我想让你们看下,给我点意见. 开始吧 实战 本次以经典的登录作为案例.登录做的好也是经典. 服务端 和 app端,服务端简略,app端详细介绍... 服务端 资料: <spring> @Respons

ajax的使用(使用json格式提交给服务端)

在aspx的时候,我们习惯使用ajax提交数据的时候,当请求异步发送给后台时候,我们习惯在后台使用request的方法,根据参数名称,获取对应的提交的值. 现在在mvc的时候,开发的时候,仔细研究了一下ajax的使用方式,先回顾下之前我最长用的方式,就是使用$.get(url,data,function(){},''json");这个我们都知道返回的时候数据是json的格式,我们一直没有考虑提交数据是否也有json的格式. 先看先$.ajax({url:"",type:&qu

项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!

前言 系列文章:[传送门] 洗了个澡,准备写篇博客.然后看书了.时间 3 7 分.我慢慢规律生活,向目标靠近.  很喜欢珍惜时间像叮当猫一样 正文 慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实现签到 这次 我们实现 javaweb http json 交互 in action 题目很长,但我想让你们看下,给我点意见. 开始吧 实战 本次以经典的登录作为案例.登录做的好也是经典. 服务端 和 app端,服务端简略,app端详细介绍... 服务端 资料: <spring> @Respons

java httpclient发送json 请求 ,go服务端接收

/***java客户端发送http请求*/package com.xx.httptest; /** * Created by yq on 16/6/27. */ import java.io.IOException; import java.net.URLEncoder; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.GetMethod; import org.apache

Http学习之使用HttpURLConnection发送post和get请求 android

最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内.在Java中可以使用HttpURLConnection发起这两种请求,了解此类,对于了解soap,和编写servlet的自动测试代码都有很大的帮助.下面的代码简单描述了如何使用HttpURLConnection发起这两种请求,以及传递参数的方法: Java代码   packa

HttpUrlConnection发送GET、POST请求

之前在使用AsyncHttpClient的时候,遇到在Android6.0后找不到HttpClient的问题,后来官方更新了1.4.9版本替换了HttpClient为第三方的cz.msebera.android.httpclient.了解到Google在Android6.0后移除了HttpClient,推荐使用HttpUrlConnection实现http请求,并且许多其他第三方网络请求框架都是改为以HttpUrlConnection为基础,故此认为有必要熟悉一下其基本用法. 使用的流程: 1

Http学习之使用HttpURLConnection发送post和get请求(1)

最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内.在Java中可以使用HttpURLConnection发起这两种请求,了解此类,对于了解soap,和编写servlet的自动测试代码都有很大的帮助. 项目结构 其中jsp1.jsp的代码 <%@ page language="java" import=&quo