webservice接收数据步骤如下:
1、首先建立http连接,设置请求头和字符集编码。
2、POST请求,包装成json数据。
3、读取响应。
4、关闭连接。
webservice接收数据方法如下
/**
* urlC 请求的接口地址
* jsonObject 请求的参数json格式
* @return
*/
public static String doPost(String urlC, JSONObject jsonObject) {
StringBuffer sb = new StringBuffer("");
try {
// 创建连接
URL url = new URL(urlC);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setUseCaches(false);
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000);
connection.setRequestProperty("charset", "utf-8");
connection.setInstanceFollowRedirects(true);
//设置请求头
connection.setRequestProperty("Content-Type","application/json;charset=utf-8");
connection.connect();
// POST请求,包装成json数据
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
out.write(jsonObject.toString().getBytes("UTF-8"));
out.flush();
out.close();
// 读取响应
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String lines;
while ((lines = reader.readLine()) != null) {
lines = new String(lines.getBytes(), "utf-8");
sb.append(lines);
}
// System.out.println(sb);
reader.close();
// 断开连接
connection.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
读取接收的数据方式
1、首先建立一个实体类
@Data
public class ReadInfoDTO
{
private String patienName;
private String sex;
}
通过实体类存入数据。
JSONArray jsonArray = (JSONArray) JSONObject.parseObject(jsonStr).get("data");
for (int i = 0; i < jsonArray.size(); i++) {
jsonObject2 = (JSONObject) jsonArray.get(i);
String patienName = jsonObject2.getString("姓名");
String sex = jsonObject2.getString("性别");
readInfoDTO.setPatienName(patienName);
readInfoDTO.setSex(sex);
}