|
清单6 修改DataServiceServlet类
另一个问题是,浏览器POST方式提交名称/值。虽然,Shindig支持POST名称/值,它也支持由POST body直接处理的数据。作为一个执行增加了一个额外的名称/值参数的主体内容。问题是,在浏览器提交的情况下,Body是空的而其参数的内容被覆盖。 org.apache.shindig.protocol.DefaultHandlerRegistry类(清单7)更改修复了这个问题。
……………..
public Future<?> execute(Map<String, String[]> parameters, Reader body,
SecurityToken token, BeanConverter converter) {
try {
// bind the body contents if available
if (body != null) {
String bString = IOUtils.toString(body);
if(bString.length() > 0)
parameters.put(operation.bodyParam(), new String[]{bString});
}
RequestItem item = methodCaller.getRestRequestItem(parameters, token, converter,
beanJsonConverter);
listener.executing(item);
return methodCaller.call(handlerProvider.get(), item);
……………………………………….. |
|