Esempio n. 1
0
    void OnReceive_Msg(string data, string error, HttpCallbackDelegate callback)
    {
        if (!string.IsNullOrEmpty(error))
        {
            Debug.LogError(error);
            return;
        }
        try
        {
            string       dataStr   = data.Substring(2, data.Length - 4); //remove [""]
            byte[]       bData     = GlobalFunction.ToHexByte(dataStr);
            MemoryStream outStream = new MemoryStream(bData);
            Packet       packet    = ProtoBuf.Serializer.Deserialize <Packet>(outStream);

            if (callback != null)
            {
                callback(packet);
            }
            else
            {
                MethodInfo method = typeof(HttpCallBack).GetMethod(packet.cmd.ToString());
                method.Invoke(httpCallBack, new object[] { packet });
            }
        }
        catch
        {
            throw;
        }
    }
Esempio n. 2
0
    public void SendMsgWithCallBack(Packet packet, HttpCallbackDelegate callback, bool isCheckHead = true)
    {
        if (null == www)
        {
            return;
        }

        MemoryStream memStream = new MemoryStream();

        ProtoBuf.Serializer.Serialize <Packet>(memStream, packet);
        byte[]          data      = memStream.ToArray();
        string          dataStr   = GlobalFunction.ToHexString(data); //ToHex
        ALHttpParamForm paramForm = new ALHttpParamForm();

        paramForm.AddParam("data", dataStr);
        if (isCheckHead)
        {
            if (headData != null)
            {
                Packet headPacket = new Packet();
                headPacket.cmd                       = Packet.EnmCmdType.CMD_CL_CHECKHEAD;
                headPacket.packCLCheckHead           = new PacketCLCheckHead();
                headPacket.packCLCheckHead.accountid = headData.accountid;
                headPacket.packCLCheckHead.md5       = headData.md5;
                MemoryStream headStream = new MemoryStream();
                ProtoBuf.Serializer.Serialize <Packet>(headStream, headPacket);
                byte[] headByte = headStream.ToArray();
                string headStr  = GlobalFunction.ToHexString(headByte);
                paramForm.AddParam("head", headStr);
            }
        }
        www.HTTPRequest(szUrl, ref paramForm, OnReceive_Msg, callback, false);
    }
Esempio n. 3
0
    /// <summary>
    /// 用WWW进行http请求
    /// </summary>
    /// <param name="_szUrl"></param>
    /// <param name="_ParamForm"></param>
    /// <param name="_delegateAck"></param>
    /// <param name="_bPost"></param>
    public bool HTTPRequest(string _szUrl,
                            ref ALHttpParamForm _ParamForm,
                            HTTPReqAckDelegate _delegateAck,
                            HttpCallbackDelegate _httpCallback,
                            bool _bPost = true)
    {
        ALWWWHTTPRequest request = new ALWWWHTTPRequest();

        request.m_dwErrorNum   = 0;
        request.m_eOptState    = EHTTPOptState.eOptState_Ready;
        request.m_szRequestUrl = _szUrl;
        request.m_dwRequestId  = ++m_dwRequestId;
        request.m_Param        = new ALHttpParamForm();
        request.m_Param.CloneParam(ref _ParamForm);
        request.m_ReqDelegate = _delegateAck;
        request.m_ReqCallback = _httpCallback;
        request.m_bPost       = _bPost;

        if (m_bUpdating)
        {
            m_dicRequestCache.Add(request.m_dwRequestId, request);
        }
        else
        {
            m_dicRequest.Add(request.m_dwRequestId, request);
        }
        return(true);
    }