Java后台发送Post请求,数据传输格式JSON

代码如下:

 1 package com.test;
 2
 3 import java.io.BufferedReader;
 4 import java.io.InputStream;
 5 import java.io.InputStreamReader;
 6
 7 import net.sf.json.JSONObject;
 8
 9 import org.apache.http.HttpResponse;
10 import org.apache.http.HttpStatus;
11 import org.apache.http.client.HttpClient;
12 import org.apache.http.client.methods.HttpPost;
13 import org.apache.http.entity.StringEntity;
14 import org.apache.http.impl.client.DefaultHttpClient;
15 import org.apache.http.message.BasicHeader;
16 import org.apache.http.protocol.HTTP;
17
18 public abstract class TestSend {
19
20     public static String URL = "http://115.28.191.62/web/control";
21
22     public static void main(String[] args) {
23
24         JSONObject jsobj1 = new JSONObject();
25         JSONObject jsobj2 = new JSONObject();
26         jsobj2.put("deviceID", "112");
27         jsobj2.put("channel", "channel");
28         jsobj2.put("state", "0");
29         jsobj1.put("item", jsobj2);
30         jsobj1.put("requestCommand", "control");
31
32         post(jsobj1);
33
34     }
35
36     public static String post(JSONObject json) {
37
38         HttpClient client = new DefaultHttpClient();
39         HttpPost post = new HttpPost(URL);
40
41         post.setHeader("Content-Type", "application/json");
42         post.addHeader("Authorization", "Basic YWRtaW46");
43         String result = "";
44
45         try {
46
47             StringEntity s = new StringEntity(json.toString(), "utf-8");
48             s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
49                     "application/json"));
50             post.setEntity(s);
51
52             // 发送请求
53             HttpResponse httpResponse = client.execute(post);
54
55             // 获取响应输入流
56             InputStream inStream = httpResponse.getEntity().getContent();
57             BufferedReader reader = new BufferedReader(new InputStreamReader(
58                     inStream, "utf-8"));
59             StringBuilder strber = new StringBuilder();
60             String line = null;
61             while ((line = reader.readLine()) != null)
62                 strber.append(line + "\n");
63             inStream.close();
64
65             result = strber.toString();
66             System.out.println(result);
67
68             if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
69
70                     System.out.println("请求服务器成功,做相应处理");
71
72             } else {
73
74                 System.out.println("请求服务端失败");
75
76             }
77
78
79         } catch (Exception e) {
80             System.out.println("请求异常");
81             throw new RuntimeException(e);
82         }
83
84         return result;
85     }
86
87 }

测试接收

 1 <%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%>
 2 <%
 3
 4     System.out.println("conenction server success!");
 5
 6     System.out.println(request.getMethod());
 7
 8     //后台接收
 9     InputStreamReader reader=new InputStreamReader(request.getInputStream(),"UTF-8");
10     char [] buff=new char[1024];
11     int length=0;
12     while((length=reader.read(buff))!=-1){
13
14         String x=new String(buff,0,length);
15
16         System.out.println(x);
17     }
18
19
20     //响应
21     out.println("{‘responseCommand‘:‘0‘,‘requestCommand‘:‘control‘}");
22
23 %>
时间: 2024-12-23 02:24:06

Java后台发送Post请求,数据传输格式JSON的相关文章

后台发送http请求通用方法,包括get和post

package com.examsafety.service.sh; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; imp

使用xutils发送POST请求,携带json和图片二进制文件数据获取服务器端返回json数据

接口文档: 换头像 接口 user/change_avatar 发送数据 HTTP Post body(一共2对KEY-VALUE): json={"uid":"1","sid":"0123456789ABCDEF0123456789ABCDEF","ver":"1","request":{}} file=图片二进制文件数据 返回数据 {"ret"

用java模拟发送post请求

package com.bytestream.practice.demo;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;

java后台发送请求并获取返回值(续)

在java后端发送请求给另一个平台,从而给前端实现 "透传"的过程中,出现:数据请求到了并传到了前端,但是控制台打印时中文显示Unicode码而前端界面中中文显示不出来!!!开始怀疑是编码格式或透传过程中处理的问题,将编码格式进行了设置并查资料了解了一下透传过程中代码的处理方法,虽然最后发现是前后端定义的json串的属性名称不一致导致(后端传输数据中属性名label写成了lable...),但在此还是记录一下"透传"处理过程中处理数据流的三种方式. 主要是介绍经常用

后台发送get请求

第一步:编写Controller,让后台去请求接口 package controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bin

C#后台发送HTTP请求

转载自:http://www.cnblogs.com/leon719/p/4263673.html using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System; namespace KL.EDMS.Business.Report {     public class FaultCountLogic     {     

Nodejs后台发送https请求验证证书

项目中用到了很多第三方的库,这些库在生产环境使用的时候的都会发送https的请求出去,但是再发送请求的时候nodejs会验证证书,没有证书的时候都会无法通过,这里可以修改代码进行修改这个问题, 1.在发送https请求的时候添加如下代码: rejectUnauthorized: false, 如图,某个库: 2.还有就是全局设置. 启动程序的时候设置: process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

使用axios发送post请求,将JSON数据改为为form类型

通常前端通过POST请求向服务器端提交数据格式有4中,分别是"application/x-www-form-urlencoded"格式." multipart/form-data"格式."application/json"格式和"text/xml"格式.通常最常见的是"application/json"格式,也就是通过JSON字符串形式. 在控制台看到的数据就是这样: 有的时候后台需要Form形式的数据才能

环信java后台发送消息时提示msg 应该为JSONObject 的坑

解决了 ,问题不在传TextMessageBody 的msg参数的json格式,而是TextMessageBody 本身的getbody方法有问题.    public ContainerNode<?> getBody() {        if (!isInit()) {            // this.getMsgBody().put("type", MsgType.TEXT);            // this.getMsgBody().put("