1.今天有个需求是在android客户端用HttpClient,HttpPost HttpGet HttpResponse发送请求并获取服务器端的数据,服务端是struts2框架,

解决方案一:

struts2对Json的支持

解决方案二:

1:在action中以流的形式输出响应,

编写action:

public class TestAction {

private InputStream imageStream; //这个流就是要输出给用户的流,流里边的内容将显示给用户,相当于response.getOutPutStream()
public InputStream getImageStream() {
return imageStream;
}
public void setImageStream(InputStream imageStream) {
this.imageStream = imageStream;
}
public String execute() {

System.out.println("-------------");
iStream= new ByteArrayInputStream("outputsomething".getBytes()); //对流赋值,此值久是想输出的内容
return "success";
}

}


2:<action name="xx" class="test.TestAction" method="execute">
<result name="success" type="stream"> //结果类型配置成流的形式
<param name="inputName">imageStream</param>//把自己写的inputstream赋值结果类型中的inputName
</result>
</action>

输出结果


android 客户端部分代码:


HttpClient hc = new DefaultHttpClient();
HttpPost get = new HttpPost("http://192.168.2.189:8080/SecTrad/xx");
try {
HttpResponse response = hc.execute(get);
if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK)
{
HttpEntity entity = response.getEntity();
String value = EntityUtils.toString(entity, "utf-8");
System.out.println(value);
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

如果在action中用到servletactioncontext.getresponse.getoutputstream();会影响到框架,因为结果类型会是dispatcher用到了outputstream


更多相关文章

  1. Android中关于JNI 的学习(二)对于JNI方法名,数据类型和方法签名的一
  2. Android(安卓)JSON
  3. Android设置输入法
  4. Android(安卓)Support Annotations 使用详解
  5. Java bit, byte, 基本数据类型
  6. android的Log输出
  7. Android(安卓)recovery支持adb shell
  8. JS 判断浏览器客户端类型(ipad,iphone,android)
  9. 在Android中使用logback-android日志框架配置 slf4j + logback

随机推荐

  1. Android(安卓)全面屏的那些适配方法
  2. Android(安卓)关闭应用程序的6种方法
  3. Android(安卓)Activity 知识点全面总结
  4. HIDL C++
  5. Android(安卓)性能优化、内存优化
  6. @InjectView的实例化
  7. 关于android来去电监控的一点总结
  8. 在PyQt5里面玩Android(安卓)的Material D
  9. Android(安卓)so逆向基本知识总结
  10. TensorFlow模型移植Android识别手写数字(M