コード例 #1
0
        public T Post <T>(IUploadRequest <T> request) where T : IWeiboResponse, new()
        {
            var url = new StringBuilder(request.Url);

            if (request.WeiboType == WeiboType.Sina)
            {
                url.Append(_format);
            }

            var form = new HttpMultipartMimeForm();

            if (request.WeiboType == WeiboType.QQ)
            {
                form.AppendValue("format", _format.ToString());
            }

            if (request.Parameters.Count > 0)
            {
                foreach (var parameter in request.Parameters)
                {
                    form.AppendValue(parameter.Key, parameter.Value);
                }
            }

            if (request.FileParameters.Count > 0)
            {
                foreach (var fileParameter in request.FileParameters)
                {
                    form.AppendFile(fileParameter.Key, fileParameter.Value);
                }
            }

            var oauthRequest = new OAuthHttpRequestMessage("POST", url.ToString(), form).Sign(_accessToken);
            var result       = _client.Send(oauthRequest).ReadContentAsString();

            var response = new T();

            response.ConvertFrom(result);

            return(response);
        }