HttpPostedFileBase to API

217 views Asked by At

I am getting a error at this line var json = JsonConvert.SerializeObject(model); I am passing in a HttpPostedFileBase which I am trying to send to a API.

Error getting value from 'ReadTimeout' on 'System.Web.HttpInputStream'."}

  public string UploadToFileManager(HttpPostedFileBase file)
        {
            var url = string.Format("Common/UploadToFileManager");

            var result = ApiHelpers.Post<HttpPostedFileBase> ("POST", url, file);

            //return Json(result, JsonRequestBehavior.AllowGet);
            return "";
    }

    public static T Post<T>(string httpMethod, string url, object model)
    {
        try
        {
            var fullUrl = cmsApiUrl + url;

            var json = JsonConvert.SerializeObject(model);

            Stream dataStream = null;
            WebRequest Webrequest;
            Webrequest = WebRequest.Create(fullUrl);


            Webrequest.ContentType = "application/json";
            Webrequest.Method = WebRequestMethods.Http.Post;

            Webrequest.PreAuthenticate = true;
            Webrequest.Headers.Add("Authorization", "Bearer " + cmsApiKey);

            byte[] byteArray = Encoding.UTF8.GetBytes(json);

            Webrequest.ContentLength = byteArray.Length;

            dataStream = Webrequest.GetRequestStream();

            using (dataStream = Webrequest.GetRequestStream())
            {
                dataStream.Write(byteArray, 0, byteArray.Length);
            }

            WebResponse response = Webrequest.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream());
            StringBuilder output = new StringBuilder();
            output.Append(reader.ReadToEnd());
            response.Close();

            T result = JsonConvert.DeserializeObject<T>(output.ToString());
            return result;
        }
        catch (Exception e)
        {
            T result = JsonConvert.DeserializeObject<T>("");
            Elmah.ErrorSignal.FromCurrentContext().Raise(e);
            return result;
        }

enter image description here

0

There are 0 answers