/** * 获取httpBody中的请求数据处理后并以JSON格式返回到httpBody中 测试@ReponseBody(有) @RequestBody(有) * * @param userLoginMap * @param request * @return * @throws IOException */ @RequestMapping(value = "/user/login1.json", method = RequestMethod.POST, headers = { "content-type=application/json" }) public @ResponseBody String login(@RequestBody Map<String, String> userLoginMap, HttpServletRequest request) throws IOException { if (userLoginMap.get("account") == null || userLoginMap.get("password") == null) { return "{\"code\":-400,\"message\":\"参数错误。\"}"; } JSONObject jo = new JSONObject(); try { jo.put("code", "1").put("message", "登录成功!"); } catch (JSONException e) { e.printStackTrace(); } return jo.toString(); } /** * 获取httpBody中的请求数据处理后并以JSON格式返回到httpBody中 测试@ReponseBody(无) @RequestBody(无) * * @param userLoginMap * @param request * @return * @throws IOException */ @RequestMapping(value = "/user/login2.json", method = RequestMethod.POST, headers = { "content-type=application/json" }) public void login(HttpServletRequest request, HttpServletResponse response) throws IOException { /** * 获取request body中的信息,用来代替spring中@RequestBody */ System.out.println(UserInfoTestController.getBodyString(request .getReader())); /** * 获取request header中的信息 */ UserInfoTestController.getHeaderString(request); JSONObject jo = new JSONObject(); try { jo.put("code", "1").put("message", "登录成功!"); } catch (JSONException e) { e.printStackTrace(); } /** * 返回头信息到body中,用来代替@ResponseBody */ response.setContentType("application/json; charset=UTF-8"); response.getWriter().print(jo.toString()); } /** * 获取http请求中body部分的信息,用来代替spring中@RequestBody * * @param br * @return */ public static String getBodyString(BufferedReader br) { String inputLine; String str = ""; try { while ((inputLine = br.readLine()) != null) { str += inputLine; } br.close(); } catch (IOException e) { System.out.println("IOException: " + e); } return str; } /** * 获取http请求中header中的参数 * * @param request */ public static void getHeaderString(HttpServletRequest request) { Enumeration<String> enu = request.getHeaderNames(); while (enu.hasMoreElements()) {// 以此取出头信息 String headerName = (String) enu.nextElement(); String headerValue = request.getHeader(headerName);// 取出头信息内容 System.out.println(headerName + ":" + headerValue); } }
模拟http请求:
HttpClient httpClient = new HttpClient(); StringRequestEntity requestEntity = new StringRequestEntity( "{\"account\":\"zzstxx\",\"password\":\"123456\",\"clientType\":\"3\"}", "application/json", "UTF-8"); PostMethod postMethod = new PostMethod( "http://127.0.0.1:81/user/login2.json"); postMethod.setRequestEntity(requestEntity); System.out.println(postMethod.getURI()); int statusCode = httpClient.executeMethod(postMethod); System.out.println("JSON:" + postMethod.getResponseBodyAsString()); System.out.println("获取的最终状态为:" + statusCode);
DefaultHttpClient httpClient = new DefaultHttpClient(); String url = "http://127.0.0.1:81/user/login2.json"; HttpPost httpPost = new HttpPost(url); // 设置请求的header参数 httpPost.addHeader("AppKey", "94kid09c9ig9k1loimjg012345123456"); httpPost.addHeader("Content-Type", "application/json;charset=utf-8"); // 设置请求的body参数 List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("accid", "helloworld")); httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8")); // 执行请求 HttpResponse response = httpClient.execute(httpPost); // 打印执行结果 System.out.println(EntityUtils.toString(response.getEntity(), "utf-8"));
相关推荐
本文将详细介绍如何使用Java从HTTP请求中获取Header和Body。 首先,让我们了解HTTP请求的基本结构。一个HTTP请求由以下几部分组成: 1. 请求行(Request Line):包括HTTP方法(GET、POST等)、URL和HTTP版本。 2....
在VB(Visual Basic)编程环境中,发送HTTP请求是一项常见的任务,尤其在开发Web应用程序或集成API接口时。本文将深入探讨如何使用VB实现这一功能,同时也会涉及网络中的一些基本制式转换。 首先,让我们理解HTTP...
HTTP请求由多个部分组成,包括请求行、请求头(Header)和请求体(Body)。在本实例中,我们将关注如何读取HTTP请求的Body部分。下面将详细解释相关知识点。 1. **HTTP请求结构** - **请求行**:包含了请求方法...
第五步:使用 REST Client 发送 http 请求,参数 Body field:param_json 是在上一个步骤中生成的 在这个步骤中,我们使用 REST Client 将json参数发送到目标系统中。 第六步:通过 jsonpath 获取 result 中的数据 ...
在Golang中,发送HTTP请求并设置Header是常见的任务,特别是在进行网络爬虫、API调用或者模拟用户行为时。以下将详细介绍如何在Golang中实现这个功能。 首先,我们需要导入必要的包,包括`fmt`用于输出,`io/ioutil...
- **概述**:与GET方法类似,但服务器在响应中只返回首部(header)信息,不返回实体的主体部分(body)。 - **应用**:常用于在不获取资源内容的情况下,检查资源的存在性、头部信息等。 6. **OPTIONS方法**: ...
C++和STL在Http请求和响应格式中的应用: 在C++中,开发人员可以使用STL库来处理Http请求和响应格式。例如,使用std::string来处理请求体和响应体的文本数据,使用std::map来处理请求头和响应头的键值对。同时,C++...
SOAP消息由四个主要部分组成:信封(Envelope)、头(Header)、体(Body)和尾注(Fault)。其中,Header部分可以包含各种元数据,如身份验证、事务处理和路由信息等,这些元数据对消息的处理至关重要。 ### ...
本项目涉及的主题是“自己实现的Json和简单HTTP请求”,这在现代网络编程中是非常基础且重要的技能。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而HTTP(HyperText Transfer Protocol)则是...
在工具类中,通常会提供两个方法分别处理这两种请求,例如`sendGetRequest(url, params)`和`sendPostRequest(url, params, requestBody)`。 2. 请求头与请求体:HTTP请求由请求行(包含方法、URL和协议版本)、请求...
### 通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求 #### 概述 在Oracle环境中,经常需要与外部系统进行交互,特别是在需要从Web服务器获取数据或向其发送数据的情况下。`UTL_HTTP`是Oracle提供的一款强大工具...
本项目是一个关于Android应用源码的示例,特别关注于如何遍历和解析HTTP请求或响应中的Body部分。这个毕业设计旨在帮助学生深入理解Android应用的网络通信机制,以及如何有效地处理接收到的数据。 1. **Android网络...
在IT行业中,HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。它是一个基于请求与响应模式的、无状态的、应用层协议。当我们需要测试、调试或者...
要构建SOAP请求,你需要创建一个XML字符串,包含SOAP Envelope、Header和Body。Body部分通常包含Web服务的调用方法和参数。例如,如果你有一个名为`HelloWorld`的Web服务方法,参数为`name`,那么XML可能如下所示: ...
HTTP 请求报头是 HTTP 协议中的一种重要机制,它允许客户端和服务器之间进行信息交换。报头字段可以分为四类:general-header、request-header、response-header 和 entity-header。 首先,general-header 字段是 ...
本代码是处理android hybrid混合应用,遇到的webview 拦截 header referer 问题的解决。 场景:angular $HTTP 或者js的http请求或者...webview成功拦截get 、post、delete请求,添加header,referer以及body 参数体。。
在发送请求之前,将步骤2中构建的请求头和请求体附加到连接对象。 4. **处理响应**:接收服务器响应后,也要注意解码。同样,确保按照服务器返回的Content-Type来解码响应内容。 在提供的`HeaderCode.h`和`main....
2. 当遇到HTTP 400错误,要检查请求的结构,包括URL、Header和Body,特别是自定义的Header。 3. 注意HTTP协议对Header的限制,避免在Header中放入非ASCII字符,尤其是中文或其他非西方语言。 4. 对于第三方服务如...
HTTP协议是互联网上应用最为广泛的一种网络协议,而POST是HTTP协议中的一个请求方法,常用于向服务器发送数据,例如提交表单或者上传文件。在Kettle中,我们可以通过Job或Transformation中的"HTTP"组件来实现HTTP...