当我试图通过HTTP将JSON作为字符串发送到Nodejs服务器时,当我尝试记录请求时。任何字段。
我的课程将请求发送到服务器:
public class SendData extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
String data = "";
HttpURLConnection httpURLConnection = null;
try{
httpURLConnection = (HttpURLConnection)new URL(strings[0]).openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
wr.writeBytes(strings[1]);
wr.flush();
wr.close();
InputStreamReader inputStreamReader = new InputStreamReader(httpURLConnection.getInputStream());
int inputStreamData = inputStreamReader.read();
while (inputStreamData != -1){
char current = (char) inputStreamData;
inputStreamData = inputStreamReader.read();
data += current;
}
} catch (Exception e){
e.printStackTrace();
} finally {
if(httpURLConnection != null){
httpURLConnection.disconnect();
}
}
return data;
}
}
服务器代码:
app.post('/', function (req, res) {
var a = req.body;
console.log(a);
res.send(a);
})
和JSON看起来像这样:
{ '{"name":"ffffc","email":"asdxx","password":"ffv","tel":"111"}': '' }
,但应该看起来像:
{"name":"ffffc","email":"asdxx","password":"ffv","tel":"111"}
您的Java代码需要将其内容类型设置为application/json
,就像:
httpURLConnection.setRequestProperty("Content-Type", "application/json");