当前位置:Gxlcms > PHP教程 > php打包amf数据,发送post

php打包amf数据,发送post

时间:2021-07-01 10:21:17 帮助过:16人阅读

php封装amf数据,发送post
模拟客户端请求,AMF请求 封包,目前只有C#版本的,我没学过C#,想把它翻译成php版本的,但是非常蛋疼啊。想问下目前网上有类似功能的类库了吗?或者已经有相同功能的代码了吗?

class AMF_Post_Data
{
public List message;

///
/// 初始化Message
///

///
///
///
public AMF_Post_Data(AMFType at, int headers, int bodies)
{
//AMF版本
if (at == AMFType.AMF0)
{
message = new List(new byte[] { 0x00, 0x00 });
}
else if (at == AMFType.AMF3)
{
message = new List(new byte[] { 0x00, 0x03 });
}

//header数量
message.Add(BitConverter.GetBytes(headers)[1]);
message.Add(BitConverter.GetBytes(headers)[0]);
//body数量
message.Add(BitConverter.GetBytes(bodies)[1]);
message.Add(BitConverter.GetBytes(bodies)[0]);
}

///
/// 添加Target
///

///
///
public void AddTargetAndResponse(string target, string Response)
{
//添加Target长度
message.Add(BitConverter.GetBytes(target.Length)[1]);
message.Add(BitConverter.GetBytes(target.Length)[0]);
//添加Target内容
message.AddRange(Encoding.Default.GetBytes(target));

//添加Response长度
message.Add(BitConverter.GetBytes(Response.Length)[1]);
message.Add(BitConverter.GetBytes(Response.Length)[0]);
//添加Response内容
message.AddRange(Encoding.Default.GetBytes(Response));
}

///
/// 添加Body
///

///
///
public void AddBody(AMF_Post_Data_Body apdb)
{
message.AddRange(apdb.getLength());
message.AddRange(apdb.Content.ToArray());
}
}

class AMF_Post_Data_Body

人气教程排行