public static string Post(string url, string content)
{
string result = "";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
#region 添加Post 参数
byte[] data = Encoding.UTF8.GetBytes(content);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
#endregion
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
return result;
}
服务端 JAVA语言 接受数据
StringBuffer sb = new StringBuffer() ;
InputStream is = request.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s = "" ;
while((s=br.readLine())!=null){
sb.append(s) ;
}
String result =sb.toString();
客户端使用"application/x-www-form-urlencoded" 方式 发送4MB json数据
服务。服务端正常接收。
json格式如下:
{"eqnum":"123456","datalist":[{"mDatetime":"2018-08-31 09:00:00","mDate":"2018-08-31","mTime":"21:00:00","mValue":-65536.0},{"mDatetime":"2018-08-31 09:01:00","mDate":"2018-08-31","mTime":"21:01:00","mValue":-65536.0}]}
但是同样的结构 同样的方式 同样的接口 通过减少datalist内容的方式,发送1MB json数据,服务端接到数据为空。改为"application/json"却是可以的
使用Fiddler,发现两次请求发送的时候 都是有值的。不明白为什么,求解惑。
3 个解决方案
#2
当以application/json的content-type传送数据,被传送的对象只需被json序列化。当以application/x-www-form-urlencoded的方式传送数据。请求的内容需要以..=..&..=..的格式提交,在请求体内内容将会以”&”和“ = ”进行拆分。但你需要使用content-type=application/json且后台使用@RequestBody,你无法再从paramter中获取请求数据。
选择application/x-www-form-urlencoded还是application/json,得看你是否有从request.paramter获取请求数据的需求。
选择application/x-www-form-urlencoded还是application/json,得看你是否有从request.paramter获取请求数据的需求。
#3
啥呀兄弟啊等等
#1
#2
当以application/json的content-type传送数据,被传送的对象只需被json序列化。当以application/x-www-form-urlencoded的方式传送数据。请求的内容需要以..=..&..=..的格式提交,在请求体内内容将会以”&”和“ = ”进行拆分。但你需要使用content-type=application/json且后台使用@RequestBody,你无法再从paramter中获取请求数据。
选择application/x-www-form-urlencoded还是application/json,得看你是否有从request.paramter获取请求数据的需求。
选择application/x-www-form-urlencoded还是application/json,得看你是否有从request.paramter获取请求数据的需求。
#3
啥呀兄弟啊等等