postman发送请求报文到后台中文乱码

java 复制代码
package com.inca.webservice.crm.httpservlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Category;

import com.inca.webservice.crm.httpservlet.imp.AQueryHisDoctorImpl;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 * 
 * @author 于德晓
 *
 */
public class AQueryHisDoctorServlet extends HttpServlet {
	private static final long serialVersionUID = -2130549407160182348L;
	Category logger  = Category.getInstance(AQueryHisDoctorServlet.class);

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	} 
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/javascript;charset=utf-8");
		PrintWriter pw = resp.getWriter();
		BufferedReader br =new BufferedReader(new InputStreamReader(req.getInputStream(),"UTF-8"));
		String line = null;
		StringBuffer sb = new StringBuffer();
		while((line =br.readLine()) != null){
			sb.append(line);
		}
		String reqbody = sb.toString();
		String result = "";
		try {
			AQueryHisDoctorImpl service = new AQueryHisDoctorImpl();
			result = service.doBusi(reqbody);
			pw.write(result.toString());
		} catch (Exception e) {
			pw.write(format("-ERROR:" + e.getMessage(), null));
			logger.error(e.getMessage());
		}
		
	}
	public static String format(String str, JSONArray data) {
		JSONObject respResult = new JSONObject();
		if (str.startsWith("-ERROR:")) {
			respResult.put("Result", false);
		} else {
			respResult.put("Result", true);
		}
		respResult.put("ResultMessage", str);
		if (data == null || data.size() == 0) {
			respResult.put("Data", new JSONArray());
		} else {
			respResult.put("Data", data);
		}
		return respResult.toString();
	}

}

通过输入流获取请求报文的时候,没有指定字符集(UTF-8),所以乱码了。

相关推荐
Run Freely93712 小时前
web自动化测试_selenium_05_窗口截图、验证码处理
selenium·测试工具
天才测试猿17 小时前
Selenium三大等待详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
^毛小兔^20 小时前
Postman实现jwt发送请求
测试工具·postman
程序员小远20 小时前
Postman接口测试: Postman环境变量&全局变量设置,多接口顺序执行详解
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
天才测试猿20 小时前
Postman使用方法
自动化测试·软件测试·测试工具·职场和发展·测试用例·接口测试·postman
程序员三藏20 小时前
Postman定义公共函数
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
安冬的码畜日常20 小时前
【JUnit实战3_26】第十五章:表现层测试(下)—— Selenium 在网页测试中的用法
selenium·测试工具·junit·gui测试·junit5·表现层测试
程序员三藏1 天前
Postman持久化保存/设置断言详解
自动化测试·软件测试·python·测试工具·职场和发展·接口测试·postman
测试19982 天前
如何写出一个完整的测试用例?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
我的xiaodoujiao2 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 22--数据驱动--参数化处理 Json 文件
python·学习·测试工具·pytest