/*
* www.openamf.org
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.openamf.AMFBody;
import org.openamf.AMFMessage;
import org.openamf.io.AMFDeserializer;
import org.openamf.io.AMFSerializer;
import flashgateway.io.ASObject;
/**
* @author Jason Calabrese <jasonc@missionvi.com>
* @version $Revision: 1.1 $, $Date: 2003/08/20 20:35:23 $
*/
public class RemotingTester123 {
public static AMFMessage sendMessage(
String gateway,
String target,
String response,
List parameters)
throws IOException, HttpException {
AMFMessage requestMessage = new AMFMessage();
AMFBody requestBody = new AMFBody(target, response, parameters);
requestMessage.addBody(requestBody);
return sendMessage(gateway, requestMessage);
}
@SuppressWarnings("deprecation")
public static AMFMessage sendMessage(String gateway, AMFMessage requestMessage)
throws IOException, HttpException {
ByteArrayOutputStream baOutputStream = new ByteArrayOutputStream();
DataOutputStream outputStream = new DataOutputStream(baOutputStream);
AMFSerializer serializer = new AMFSerializer(outputStream);
serializer.serializeMessage(requestMessage);
PostMethod post = new PostMethod(gateway);
post.setRequestBody(new ByteArrayInputStream(baOutputStream.toByteArray()));
post.setRequestContentLength(baOutputStream.size());
post.setRequestHeader("Content-type", "application/x-amf;charset=UTF-8");
//post.setRequestHeader("Content-Type", "text/html;charset=UTF-8");
HttpClient httpclient = new HttpClient();
int result = httpclient.executeMethod(post);
DataInputStream inputStream =new DataInputStream(new ByteArrayInputStream(post.getResponseBody()));
AMFDeserializer deserializer = new AMFDeserializer(inputStream);
AMFMessage resposeMessage = deserializer.getAMFMessage();
post.releaseConnection();
return resposeMessage;
}
public static void main(String[] args) throws IOException, ParseException {
AMFMessage msg1 = createMessage1();
System.out.println("msg1 = " + msg1);
AMFMessage msg2 = sendMessage("http://19.12.2.230:8080/gateway", msg1);
//AMFMessage msg2 = sendMessage("http://localhost:8080/lxf_web/gateway", msg1);
List lists = (List) msg2.getBody(0).getValue();
for (Object object : lists) {
ASObject asObj = (ASObject) object;
System.out.println(asObj.get("result"));
List lists1 = (List) asObj.get("result");
List<SnsNewsInfo> newsInfoList = new ArrayList<SnsNewsInfo>();
if (lists1 != null){
for (Object object1 : lists1) {
ASObject asObj1 = (ASObject) object1;
SnsNewsInfo newsInfo = new SnsNewsInfo();
//新闻ID
newsInfo.setNewsId(asObj1.get("newsid").toString());
//新闻标题
newsInfo.setNewsTitle(asObj1.get("newstitle").toString());
//新闻内容
newsInfo.setNewsContent(asObj1.get("newscontent").toString());
newsInfoList.add(newsInfo);
}
}
}
}
private static AMFMessage createMessage1() {
/**
+ * msg1 = [AMFMessage: {version=0, headers={[AMFHeader: {key=amf_server_debug, required=true,
+ * value={amfheaders=false, httpheaders=false, coldfusion=true, m_debug=true, recordset=true, trace=true,
+ * amf=false, error=true}}]}, bodies={[AMFBody: {target=org.openamf.test.Test3.getNumber,
+ * serviceName=org.openamf.test.Test3,serviceMethodName=getNumber,response=/1,value=3.14,type=NUMBER}]}}]
+ */
AMFMessage message = new AMFMessage();
HashMap keys1 = new HashMap();
keys1.put("amf", Boolean.FALSE);
keys1.put("error", Boolean.TRUE);
keys1.put("trace", Boolean.TRUE);
keys1.put("coldfusion", Boolean.TRUE);
keys1.put("m_debug", Boolean.TRUE);
keys1.put("httpheaders", Boolean.FALSE);
keys1.put("amfheaders", Boolean.FALSE);
keys1.put("recordset", Boolean.TRUE);
ArrayList<Object> parameters = new ArrayList<Object>();
HashMap params = new HashMap();
params.put("Id", "017");
params.put("pageNo", "1");
params.put("pageSize", "15");
params.put("tsFrom", "20090125");
params.put("tsTo", "20090425");
parameters.add(params);
message.addHeader("amf_server_debug", true, keys1);
AMFBody body = new AMFBody("NewsRecordHandler.executeAction", "/1", parameters,
AMFBody.DATA_TYPE_ARRAY);
message.addBody(body);
return message;
}
}