我试图在泽西岛的 if (Build.VERSION.SDK_INT >= 24)
{
textView.setText(Html.fromHtml(htmlString , Html.FROM_HTML_MODE_LEGACY)));
}
else
{
textView.setText(Html.fromHtml(htmlString));
}
中阅读APPLICATION_FORM_URLENCODED
。当我尝试使用MessageBodyReader
这是我的代码:
BufferedReader
我可以看到数据是在{@ 1}}的POST请求中从我的表单发送的,但是我无法在@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public class EmployeeReader implements MessageBodyReader<Employee> {
@Override
public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations,
MediaType mediaType) {
return true;
}
@Override
public Employee readFrom(Class<Employee> type, Type genericType, Annotation[] annotations,
MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream)
throws IOException, WebApplicationException {
System.out.println(entityStream.available()); //Prints 0
BufferedReader br = new BufferedReader(new InputStreamReader(entityStream));
String data = br.readLine();
System.out.println("Stream Read:"+data);
//data is null here
.....
}
}
中读取它。
调试时我可以看到ByteChunk持有以下数据:
application/x-www-form-urlencoded
更新
我发现它是MessageBodyReader
的某种副作用。禁用此选项会导致上述代码正常工作。
有人可以帮忙吗?
答案 0 :(得分:4)
在请求到达表单数据和n = int(raw_input("Enter a number:"))
x = [1:n+1]
def work(n):
print range(x)
请求的代码之前,显然有一个HiddenHttpMethodFilter
getParameter
。因此,POST
已被阅读且InputStream
正在返回br.readLine();
。
我找到了一种在其他帖子here
中覆盖此方法的方法null
这样做只是检查请求是否为@Configuration
public class FilterConfig {
@Bean
public HiddenHttpMethodFilter hiddenHttpMethodFilter() {
return new HiddenHttpMethodFilter() {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
FilterChain filterChain) throws ServletException, IOException {
if ("POST".equals(request.getMethod())
&& request.getContentType().equals(MediaType.APPLICATION_FORM_URLENCODED)) {
//Skip this filter and call the next filter in the chain.
filterChain.doFilter(request, response);
} else {
//Continue with processing this filter.
super.doFilterInternal(request, response, filterChain);
}
}
};
}
}
类型,如果MediaType是POST
,如果是,那么我们跳过过滤器链的这一部分,否则对所有其他请求我们也处理这个过滤器。
这样,APPLICATION_FORM_URLENCODED
到达InputStream