HttpWebRequest.getResponse() returning NULL












-1















I am attempting to create a console app that sends a WebRequest to a website so that I can get some information back from it in JSON format. Once I build up the request and try to get response I just want to simply print out the data, but when I call httpWebRequest.getResponse() it returns NULL.



I have tried multiple other methods of sending the data to the the url but those are all giving me like 404, or 400 errors, etc. This method at least isn't giving me any error, just a NULL.



Here is a snapshot of the documentation I am using for the API (albeit the docs aren't complete yet):



Here is the console app code that I have right now:



    try
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://api.remot3.it/apv/v27/user/login");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("developerkey", "***KEY***");
using (var streamWriter = new

StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
email = "***EMAIL***",
password = "***PASSWORD***"
});
Console.WriteLine(json);
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
Console.WriteLine(result);
Console.ReadLine();
}
}catch(Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
Console.ReadLine();
}


Expected output is some JSON data, but I am getting a NULL back from getResponse().










share|improve this question



























    -1















    I am attempting to create a console app that sends a WebRequest to a website so that I can get some information back from it in JSON format. Once I build up the request and try to get response I just want to simply print out the data, but when I call httpWebRequest.getResponse() it returns NULL.



    I have tried multiple other methods of sending the data to the the url but those are all giving me like 404, or 400 errors, etc. This method at least isn't giving me any error, just a NULL.



    Here is a snapshot of the documentation I am using for the API (albeit the docs aren't complete yet):



    Here is the console app code that I have right now:



        try
    {
    var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://api.remot3.it/apv/v27/user/login");
    httpWebRequest.ContentType = "application/json";
    httpWebRequest.Method = "POST";
    httpWebRequest.Headers.Add("developerkey", "***KEY***");
    using (var streamWriter = new

    StreamWriter(httpWebRequest.GetRequestStream()))
    {
    string json = new JavaScriptSerializer().Serialize(new
    {
    email = "***EMAIL***",
    password = "***PASSWORD***"
    });
    Console.WriteLine(json);
    streamWriter.Write(json);
    }
    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
    {
    var result = streamReader.ReadToEnd();
    Console.WriteLine(result);
    Console.ReadLine();
    }
    }catch(Exception e)
    {
    Console.WriteLine(e.Message);
    Console.WriteLine(e.StackTrace);
    Console.ReadLine();
    }


    Expected output is some JSON data, but I am getting a NULL back from getResponse().










    share|improve this question

























      -1












      -1








      -1








      I am attempting to create a console app that sends a WebRequest to a website so that I can get some information back from it in JSON format. Once I build up the request and try to get response I just want to simply print out the data, but when I call httpWebRequest.getResponse() it returns NULL.



      I have tried multiple other methods of sending the data to the the url but those are all giving me like 404, or 400 errors, etc. This method at least isn't giving me any error, just a NULL.



      Here is a snapshot of the documentation I am using for the API (albeit the docs aren't complete yet):



      Here is the console app code that I have right now:



          try
      {
      var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://api.remot3.it/apv/v27/user/login");
      httpWebRequest.ContentType = "application/json";
      httpWebRequest.Method = "POST";
      httpWebRequest.Headers.Add("developerkey", "***KEY***");
      using (var streamWriter = new

      StreamWriter(httpWebRequest.GetRequestStream()))
      {
      string json = new JavaScriptSerializer().Serialize(new
      {
      email = "***EMAIL***",
      password = "***PASSWORD***"
      });
      Console.WriteLine(json);
      streamWriter.Write(json);
      }
      var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
      using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
      {
      var result = streamReader.ReadToEnd();
      Console.WriteLine(result);
      Console.ReadLine();
      }
      }catch(Exception e)
      {
      Console.WriteLine(e.Message);
      Console.WriteLine(e.StackTrace);
      Console.ReadLine();
      }


      Expected output is some JSON data, but I am getting a NULL back from getResponse().










      share|improve this question














      I am attempting to create a console app that sends a WebRequest to a website so that I can get some information back from it in JSON format. Once I build up the request and try to get response I just want to simply print out the data, but when I call httpWebRequest.getResponse() it returns NULL.



      I have tried multiple other methods of sending the data to the the url but those are all giving me like 404, or 400 errors, etc. This method at least isn't giving me any error, just a NULL.



      Here is a snapshot of the documentation I am using for the API (albeit the docs aren't complete yet):



      Here is the console app code that I have right now:



          try
      {
      var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://api.remot3.it/apv/v27/user/login");
      httpWebRequest.ContentType = "application/json";
      httpWebRequest.Method = "POST";
      httpWebRequest.Headers.Add("developerkey", "***KEY***");
      using (var streamWriter = new

      StreamWriter(httpWebRequest.GetRequestStream()))
      {
      string json = new JavaScriptSerializer().Serialize(new
      {
      email = "***EMAIL***",
      password = "***PASSWORD***"
      });
      Console.WriteLine(json);
      streamWriter.Write(json);
      }
      var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
      using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
      {
      var result = streamReader.ReadToEnd();
      Console.WriteLine(result);
      Console.ReadLine();
      }
      }catch(Exception e)
      {
      Console.WriteLine(e.Message);
      Console.WriteLine(e.StackTrace);
      Console.ReadLine();
      }


      Expected output is some JSON data, but I am getting a NULL back from getResponse().







      c# httprequest httpresponse






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 2 at 1:56









      Zack SloanZack Sloan

      366




      366
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Try to serialize the credential in your form and for header send as parameter for this class.
          Check below for my code. It is not 100 % fit to your requirement, but atleast it will help to get through your logic.



          Here is what I get Json Response from this code. Its work Perfect. Please remember to add timeout option on your webrequest and at the end close the streamreader and stream after completing your task. please check this code.



            public static string httpPost(string url, string json)
          {
          string content = "";
          byte bs;

          if (json != null && json != string.Empty)
          {
          bs = Encoding.UTF8.GetBytes(json);
          }
          else
          {
          bs = Encoding.UTF8.GetBytes(url);
          }
          HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
          req.Method = "POST";

          if (json != string.Empty)
          req.ContentType = "application/json";
          else
          req.ContentType = "application/x-www-form-urlencoded";
          req.KeepAlive = false;
          req.Timeout = 30000;
          req.ReadWriteTimeout = 30000;
          //req.UserAgent = "test.net";
          req.Accept = "application/json";
          req.ContentLength = bs.Length;
          using (Stream reqStream = req.GetRequestStream())
          {
          reqStream.Write(bs, 0, bs.Length);
          reqStream.Flush();
          reqStream.Close();
          }
          using (WebResponse wr = req.GetResponse())
          {
          Stream s = wr.GetResponseStream();
          StreamReader reader = new StreamReader(s, Encoding.UTF8);
          content = reader.ReadToEnd();
          wr.Close();
          s.Close();
          reader.Close();
          }
          return content;

          }





          share|improve this answer


























          • So I have adjusted your code above slightly to fit my needs, I have created the header within your function with my api key, then passed in the json data with my username and password. It sends it correctly with no errors but content is still an empty string once it is returned back to the main

            – Zack Sloan
            Jan 2 at 5:18











          • Can you place comment and debug the code and see your webResponse, then check the stream. Try to debug step by step. Its bit difficult to answer when no error and returns empty.

            – Mdyahiya
            Jan 2 at 5:55













          • Here is a snapshot of the stream in the debugger

            – Zack Sloan
            Jan 2 at 14:38











          • I dont see any issue here in this webrequest. Have you check your controller receive this request with required parameter which you filled in this webrequest and return the result. Place the comment on controller and debug. or test your api using one of this tools link to verify your api is working

            – Mdyahiya
            Jan 3 at 3:32













          • Just tried using postman to test the request, seems like the request from the server itself is not sending anything back. Guess it's time to contact the developers of the api

            – Zack Sloan
            Jan 3 at 5:11













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54000405%2fhttpwebrequest-getresponse-returning-null%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          Try to serialize the credential in your form and for header send as parameter for this class.
          Check below for my code. It is not 100 % fit to your requirement, but atleast it will help to get through your logic.



          Here is what I get Json Response from this code. Its work Perfect. Please remember to add timeout option on your webrequest and at the end close the streamreader and stream after completing your task. please check this code.



            public static string httpPost(string url, string json)
          {
          string content = "";
          byte bs;

          if (json != null && json != string.Empty)
          {
          bs = Encoding.UTF8.GetBytes(json);
          }
          else
          {
          bs = Encoding.UTF8.GetBytes(url);
          }
          HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
          req.Method = "POST";

          if (json != string.Empty)
          req.ContentType = "application/json";
          else
          req.ContentType = "application/x-www-form-urlencoded";
          req.KeepAlive = false;
          req.Timeout = 30000;
          req.ReadWriteTimeout = 30000;
          //req.UserAgent = "test.net";
          req.Accept = "application/json";
          req.ContentLength = bs.Length;
          using (Stream reqStream = req.GetRequestStream())
          {
          reqStream.Write(bs, 0, bs.Length);
          reqStream.Flush();
          reqStream.Close();
          }
          using (WebResponse wr = req.GetResponse())
          {
          Stream s = wr.GetResponseStream();
          StreamReader reader = new StreamReader(s, Encoding.UTF8);
          content = reader.ReadToEnd();
          wr.Close();
          s.Close();
          reader.Close();
          }
          return content;

          }





          share|improve this answer


























          • So I have adjusted your code above slightly to fit my needs, I have created the header within your function with my api key, then passed in the json data with my username and password. It sends it correctly with no errors but content is still an empty string once it is returned back to the main

            – Zack Sloan
            Jan 2 at 5:18











          • Can you place comment and debug the code and see your webResponse, then check the stream. Try to debug step by step. Its bit difficult to answer when no error and returns empty.

            – Mdyahiya
            Jan 2 at 5:55













          • Here is a snapshot of the stream in the debugger

            – Zack Sloan
            Jan 2 at 14:38











          • I dont see any issue here in this webrequest. Have you check your controller receive this request with required parameter which you filled in this webrequest and return the result. Place the comment on controller and debug. or test your api using one of this tools link to verify your api is working

            – Mdyahiya
            Jan 3 at 3:32













          • Just tried using postman to test the request, seems like the request from the server itself is not sending anything back. Guess it's time to contact the developers of the api

            – Zack Sloan
            Jan 3 at 5:11


















          0














          Try to serialize the credential in your form and for header send as parameter for this class.
          Check below for my code. It is not 100 % fit to your requirement, but atleast it will help to get through your logic.



          Here is what I get Json Response from this code. Its work Perfect. Please remember to add timeout option on your webrequest and at the end close the streamreader and stream after completing your task. please check this code.



            public static string httpPost(string url, string json)
          {
          string content = "";
          byte bs;

          if (json != null && json != string.Empty)
          {
          bs = Encoding.UTF8.GetBytes(json);
          }
          else
          {
          bs = Encoding.UTF8.GetBytes(url);
          }
          HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
          req.Method = "POST";

          if (json != string.Empty)
          req.ContentType = "application/json";
          else
          req.ContentType = "application/x-www-form-urlencoded";
          req.KeepAlive = false;
          req.Timeout = 30000;
          req.ReadWriteTimeout = 30000;
          //req.UserAgent = "test.net";
          req.Accept = "application/json";
          req.ContentLength = bs.Length;
          using (Stream reqStream = req.GetRequestStream())
          {
          reqStream.Write(bs, 0, bs.Length);
          reqStream.Flush();
          reqStream.Close();
          }
          using (WebResponse wr = req.GetResponse())
          {
          Stream s = wr.GetResponseStream();
          StreamReader reader = new StreamReader(s, Encoding.UTF8);
          content = reader.ReadToEnd();
          wr.Close();
          s.Close();
          reader.Close();
          }
          return content;

          }





          share|improve this answer


























          • So I have adjusted your code above slightly to fit my needs, I have created the header within your function with my api key, then passed in the json data with my username and password. It sends it correctly with no errors but content is still an empty string once it is returned back to the main

            – Zack Sloan
            Jan 2 at 5:18











          • Can you place comment and debug the code and see your webResponse, then check the stream. Try to debug step by step. Its bit difficult to answer when no error and returns empty.

            – Mdyahiya
            Jan 2 at 5:55













          • Here is a snapshot of the stream in the debugger

            – Zack Sloan
            Jan 2 at 14:38











          • I dont see any issue here in this webrequest. Have you check your controller receive this request with required parameter which you filled in this webrequest and return the result. Place the comment on controller and debug. or test your api using one of this tools link to verify your api is working

            – Mdyahiya
            Jan 3 at 3:32













          • Just tried using postman to test the request, seems like the request from the server itself is not sending anything back. Guess it's time to contact the developers of the api

            – Zack Sloan
            Jan 3 at 5:11
















          0












          0








          0







          Try to serialize the credential in your form and for header send as parameter for this class.
          Check below for my code. It is not 100 % fit to your requirement, but atleast it will help to get through your logic.



          Here is what I get Json Response from this code. Its work Perfect. Please remember to add timeout option on your webrequest and at the end close the streamreader and stream after completing your task. please check this code.



            public static string httpPost(string url, string json)
          {
          string content = "";
          byte bs;

          if (json != null && json != string.Empty)
          {
          bs = Encoding.UTF8.GetBytes(json);
          }
          else
          {
          bs = Encoding.UTF8.GetBytes(url);
          }
          HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
          req.Method = "POST";

          if (json != string.Empty)
          req.ContentType = "application/json";
          else
          req.ContentType = "application/x-www-form-urlencoded";
          req.KeepAlive = false;
          req.Timeout = 30000;
          req.ReadWriteTimeout = 30000;
          //req.UserAgent = "test.net";
          req.Accept = "application/json";
          req.ContentLength = bs.Length;
          using (Stream reqStream = req.GetRequestStream())
          {
          reqStream.Write(bs, 0, bs.Length);
          reqStream.Flush();
          reqStream.Close();
          }
          using (WebResponse wr = req.GetResponse())
          {
          Stream s = wr.GetResponseStream();
          StreamReader reader = new StreamReader(s, Encoding.UTF8);
          content = reader.ReadToEnd();
          wr.Close();
          s.Close();
          reader.Close();
          }
          return content;

          }





          share|improve this answer















          Try to serialize the credential in your form and for header send as parameter for this class.
          Check below for my code. It is not 100 % fit to your requirement, but atleast it will help to get through your logic.



          Here is what I get Json Response from this code. Its work Perfect. Please remember to add timeout option on your webrequest and at the end close the streamreader and stream after completing your task. please check this code.



            public static string httpPost(string url, string json)
          {
          string content = "";
          byte bs;

          if (json != null && json != string.Empty)
          {
          bs = Encoding.UTF8.GetBytes(json);
          }
          else
          {
          bs = Encoding.UTF8.GetBytes(url);
          }
          HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
          req.Method = "POST";

          if (json != string.Empty)
          req.ContentType = "application/json";
          else
          req.ContentType = "application/x-www-form-urlencoded";
          req.KeepAlive = false;
          req.Timeout = 30000;
          req.ReadWriteTimeout = 30000;
          //req.UserAgent = "test.net";
          req.Accept = "application/json";
          req.ContentLength = bs.Length;
          using (Stream reqStream = req.GetRequestStream())
          {
          reqStream.Write(bs, 0, bs.Length);
          reqStream.Flush();
          reqStream.Close();
          }
          using (WebResponse wr = req.GetResponse())
          {
          Stream s = wr.GetResponseStream();
          StreamReader reader = new StreamReader(s, Encoding.UTF8);
          content = reader.ReadToEnd();
          wr.Close();
          s.Close();
          reader.Close();
          }
          return content;

          }






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Jan 2 at 3:27

























          answered Jan 2 at 2:51









          MdyahiyaMdyahiya

          6718




          6718













          • So I have adjusted your code above slightly to fit my needs, I have created the header within your function with my api key, then passed in the json data with my username and password. It sends it correctly with no errors but content is still an empty string once it is returned back to the main

            – Zack Sloan
            Jan 2 at 5:18











          • Can you place comment and debug the code and see your webResponse, then check the stream. Try to debug step by step. Its bit difficult to answer when no error and returns empty.

            – Mdyahiya
            Jan 2 at 5:55













          • Here is a snapshot of the stream in the debugger

            – Zack Sloan
            Jan 2 at 14:38











          • I dont see any issue here in this webrequest. Have you check your controller receive this request with required parameter which you filled in this webrequest and return the result. Place the comment on controller and debug. or test your api using one of this tools link to verify your api is working

            – Mdyahiya
            Jan 3 at 3:32













          • Just tried using postman to test the request, seems like the request from the server itself is not sending anything back. Guess it's time to contact the developers of the api

            – Zack Sloan
            Jan 3 at 5:11





















          • So I have adjusted your code above slightly to fit my needs, I have created the header within your function with my api key, then passed in the json data with my username and password. It sends it correctly with no errors but content is still an empty string once it is returned back to the main

            – Zack Sloan
            Jan 2 at 5:18











          • Can you place comment and debug the code and see your webResponse, then check the stream. Try to debug step by step. Its bit difficult to answer when no error and returns empty.

            – Mdyahiya
            Jan 2 at 5:55













          • Here is a snapshot of the stream in the debugger

            – Zack Sloan
            Jan 2 at 14:38











          • I dont see any issue here in this webrequest. Have you check your controller receive this request with required parameter which you filled in this webrequest and return the result. Place the comment on controller and debug. or test your api using one of this tools link to verify your api is working

            – Mdyahiya
            Jan 3 at 3:32













          • Just tried using postman to test the request, seems like the request from the server itself is not sending anything back. Guess it's time to contact the developers of the api

            – Zack Sloan
            Jan 3 at 5:11



















          So I have adjusted your code above slightly to fit my needs, I have created the header within your function with my api key, then passed in the json data with my username and password. It sends it correctly with no errors but content is still an empty string once it is returned back to the main

          – Zack Sloan
          Jan 2 at 5:18





          So I have adjusted your code above slightly to fit my needs, I have created the header within your function with my api key, then passed in the json data with my username and password. It sends it correctly with no errors but content is still an empty string once it is returned back to the main

          – Zack Sloan
          Jan 2 at 5:18













          Can you place comment and debug the code and see your webResponse, then check the stream. Try to debug step by step. Its bit difficult to answer when no error and returns empty.

          – Mdyahiya
          Jan 2 at 5:55







          Can you place comment and debug the code and see your webResponse, then check the stream. Try to debug step by step. Its bit difficult to answer when no error and returns empty.

          – Mdyahiya
          Jan 2 at 5:55















          Here is a snapshot of the stream in the debugger

          – Zack Sloan
          Jan 2 at 14:38





          Here is a snapshot of the stream in the debugger

          – Zack Sloan
          Jan 2 at 14:38













          I dont see any issue here in this webrequest. Have you check your controller receive this request with required parameter which you filled in this webrequest and return the result. Place the comment on controller and debug. or test your api using one of this tools link to verify your api is working

          – Mdyahiya
          Jan 3 at 3:32







          I dont see any issue here in this webrequest. Have you check your controller receive this request with required parameter which you filled in this webrequest and return the result. Place the comment on controller and debug. or test your api using one of this tools link to verify your api is working

          – Mdyahiya
          Jan 3 at 3:32















          Just tried using postman to test the request, seems like the request from the server itself is not sending anything back. Guess it's time to contact the developers of the api

          – Zack Sloan
          Jan 3 at 5:11







          Just tried using postman to test the request, seems like the request from the server itself is not sending anything back. Guess it's time to contact the developers of the api

          – Zack Sloan
          Jan 3 at 5:11






















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54000405%2fhttpwebrequest-getresponse-returning-null%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith