HTTP Post Request in VB.net [duplicate]












0
















This question already has an answer here:




  • Http post error: An existing connection was forcibly closed by the remote host

    2 answers




I've been trying to make an Http post request from visual basic but every time I get an exception, there is nothing wrong with authentication or headers since the same code works in C#, what am I missing to do in VB.Net to make it work?



here is what I've tried:
[vb]



    Sub test()
Dim URL As String = "https://myurl.com.do"
Dim User As String = "user"
Dim Key As String = "key"
Dim client As HttpClient = New HttpClient()
client.BaseAddress = New Uri(URL)
client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Add("Auth1", User)
client.DefaultRequestHeaders.Add("Auth2", Key)
client.Timeout = New TimeSpan(0, 0, 160)

Dim values = New Dictionary(Of String, String) From {
{"param1", "1.00"},
{"param2", "0"},
{"param3", "1.00"},
{"param4", "349000000"}
}

Dim content = New FormUrlEncodedContent(values)


Try
Dim response = client.PostAsync(URL, content).Result

If response.IsSuccessStatusCode Then

Try
Dim OB As Object = JsonConvert.DeserializeObject(Of Object)(response.Content.ReadAsStringAsync().Result)

Catch ex As Exception
Console.WriteLine("error")
End Try
Else
Console.WriteLine("{0} ({1})", CInt(response.StatusCode), response.ReasonPhrase)
End If

Console.ReadKey()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub


and this is the exception I'm getting:
(exception on first try catch,on the Dim response line ):



exception on first try catch



Inner exeption



this is my working C# code:



 static void Main(string args)
{
string URL = "https://myurl.com.do";

String User = "user";
String Key = "key";

Dictionary<string, string> values = new Dictionary<string, string>();

values.Add("param1", "1.00");
values.Add("param2", "0");
values.Add("param3", "1.00");
values.Add("param4", "349000000");


FormUrlEncodedContent content = new FormUrlEncodedContent(values);

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);
client.Timeout = new TimeSpan(0, 0, 160);
client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json") );

client.DefaultRequestHeaders.Add("Auth1", User);
client.DefaultRequestHeaders.Add("Auth2", Key);

try
{

HttpResponseMessage response = client.PostAsync(URL, content).Result;
if (response.IsSuccessStatusCode)
{
try
{
string b = response.Content.ReadAsStringAsync().Result;
Dictionary<string, string> dataObjects = JsonConvert.DeserializeObject<Dictionary<string, string>>(response.Content.ReadAsStringAsync().Result);// response.Content.read
object OB = JsonConvert.DeserializeObject<object>(response.Content.ReadAsStringAsync().Result);// response.Content.read
}
catch (Exception)
{


}
}
else
{
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("Error de conexion");
}
}


what am I missing or doing wrong in vb.net?










share|improve this question















marked as duplicate by the_lotus, Community Nov 15 '18 at 18:43


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 1





    I can't see images. Can you put the text of the exception?

    – the_lotus
    Nov 15 '18 at 14:24






  • 1





    Is there a reason for not typing 'response'? Do you have Option Infer On? You're also dropping explicit typing on other variables - these are 'Object' if you don't have Option Infer On.

    – Dave Doknjas
    Nov 15 '18 at 14:27













  • Thank you all guys! just digging into the inner exeptions found the real issue, the answer is in this link: stackoverflow.com/questions/28453353/…

    – Misael Moneró Thompson
    Nov 15 '18 at 14:33
















0
















This question already has an answer here:




  • Http post error: An existing connection was forcibly closed by the remote host

    2 answers




I've been trying to make an Http post request from visual basic but every time I get an exception, there is nothing wrong with authentication or headers since the same code works in C#, what am I missing to do in VB.Net to make it work?



here is what I've tried:
[vb]



    Sub test()
Dim URL As String = "https://myurl.com.do"
Dim User As String = "user"
Dim Key As String = "key"
Dim client As HttpClient = New HttpClient()
client.BaseAddress = New Uri(URL)
client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Add("Auth1", User)
client.DefaultRequestHeaders.Add("Auth2", Key)
client.Timeout = New TimeSpan(0, 0, 160)

Dim values = New Dictionary(Of String, String) From {
{"param1", "1.00"},
{"param2", "0"},
{"param3", "1.00"},
{"param4", "349000000"}
}

Dim content = New FormUrlEncodedContent(values)


Try
Dim response = client.PostAsync(URL, content).Result

If response.IsSuccessStatusCode Then

Try
Dim OB As Object = JsonConvert.DeserializeObject(Of Object)(response.Content.ReadAsStringAsync().Result)

Catch ex As Exception
Console.WriteLine("error")
End Try
Else
Console.WriteLine("{0} ({1})", CInt(response.StatusCode), response.ReasonPhrase)
End If

Console.ReadKey()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub


and this is the exception I'm getting:
(exception on first try catch,on the Dim response line ):



exception on first try catch



Inner exeption



this is my working C# code:



 static void Main(string args)
{
string URL = "https://myurl.com.do";

String User = "user";
String Key = "key";

Dictionary<string, string> values = new Dictionary<string, string>();

values.Add("param1", "1.00");
values.Add("param2", "0");
values.Add("param3", "1.00");
values.Add("param4", "349000000");


FormUrlEncodedContent content = new FormUrlEncodedContent(values);

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);
client.Timeout = new TimeSpan(0, 0, 160);
client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json") );

client.DefaultRequestHeaders.Add("Auth1", User);
client.DefaultRequestHeaders.Add("Auth2", Key);

try
{

HttpResponseMessage response = client.PostAsync(URL, content).Result;
if (response.IsSuccessStatusCode)
{
try
{
string b = response.Content.ReadAsStringAsync().Result;
Dictionary<string, string> dataObjects = JsonConvert.DeserializeObject<Dictionary<string, string>>(response.Content.ReadAsStringAsync().Result);// response.Content.read
object OB = JsonConvert.DeserializeObject<object>(response.Content.ReadAsStringAsync().Result);// response.Content.read
}
catch (Exception)
{


}
}
else
{
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("Error de conexion");
}
}


what am I missing or doing wrong in vb.net?










share|improve this question















marked as duplicate by the_lotus, Community Nov 15 '18 at 18:43


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.














  • 1





    I can't see images. Can you put the text of the exception?

    – the_lotus
    Nov 15 '18 at 14:24






  • 1





    Is there a reason for not typing 'response'? Do you have Option Infer On? You're also dropping explicit typing on other variables - these are 'Object' if you don't have Option Infer On.

    – Dave Doknjas
    Nov 15 '18 at 14:27













  • Thank you all guys! just digging into the inner exeptions found the real issue, the answer is in this link: stackoverflow.com/questions/28453353/…

    – Misael Moneró Thompson
    Nov 15 '18 at 14:33














0












0








0









This question already has an answer here:




  • Http post error: An existing connection was forcibly closed by the remote host

    2 answers




I've been trying to make an Http post request from visual basic but every time I get an exception, there is nothing wrong with authentication or headers since the same code works in C#, what am I missing to do in VB.Net to make it work?



here is what I've tried:
[vb]



    Sub test()
Dim URL As String = "https://myurl.com.do"
Dim User As String = "user"
Dim Key As String = "key"
Dim client As HttpClient = New HttpClient()
client.BaseAddress = New Uri(URL)
client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Add("Auth1", User)
client.DefaultRequestHeaders.Add("Auth2", Key)
client.Timeout = New TimeSpan(0, 0, 160)

Dim values = New Dictionary(Of String, String) From {
{"param1", "1.00"},
{"param2", "0"},
{"param3", "1.00"},
{"param4", "349000000"}
}

Dim content = New FormUrlEncodedContent(values)


Try
Dim response = client.PostAsync(URL, content).Result

If response.IsSuccessStatusCode Then

Try
Dim OB As Object = JsonConvert.DeserializeObject(Of Object)(response.Content.ReadAsStringAsync().Result)

Catch ex As Exception
Console.WriteLine("error")
End Try
Else
Console.WriteLine("{0} ({1})", CInt(response.StatusCode), response.ReasonPhrase)
End If

Console.ReadKey()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub


and this is the exception I'm getting:
(exception on first try catch,on the Dim response line ):



exception on first try catch



Inner exeption



this is my working C# code:



 static void Main(string args)
{
string URL = "https://myurl.com.do";

String User = "user";
String Key = "key";

Dictionary<string, string> values = new Dictionary<string, string>();

values.Add("param1", "1.00");
values.Add("param2", "0");
values.Add("param3", "1.00");
values.Add("param4", "349000000");


FormUrlEncodedContent content = new FormUrlEncodedContent(values);

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);
client.Timeout = new TimeSpan(0, 0, 160);
client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json") );

client.DefaultRequestHeaders.Add("Auth1", User);
client.DefaultRequestHeaders.Add("Auth2", Key);

try
{

HttpResponseMessage response = client.PostAsync(URL, content).Result;
if (response.IsSuccessStatusCode)
{
try
{
string b = response.Content.ReadAsStringAsync().Result;
Dictionary<string, string> dataObjects = JsonConvert.DeserializeObject<Dictionary<string, string>>(response.Content.ReadAsStringAsync().Result);// response.Content.read
object OB = JsonConvert.DeserializeObject<object>(response.Content.ReadAsStringAsync().Result);// response.Content.read
}
catch (Exception)
{


}
}
else
{
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("Error de conexion");
}
}


what am I missing or doing wrong in vb.net?










share|improve this question

















This question already has an answer here:




  • Http post error: An existing connection was forcibly closed by the remote host

    2 answers




I've been trying to make an Http post request from visual basic but every time I get an exception, there is nothing wrong with authentication or headers since the same code works in C#, what am I missing to do in VB.Net to make it work?



here is what I've tried:
[vb]



    Sub test()
Dim URL As String = "https://myurl.com.do"
Dim User As String = "user"
Dim Key As String = "key"
Dim client As HttpClient = New HttpClient()
client.BaseAddress = New Uri(URL)
client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.Add("Auth1", User)
client.DefaultRequestHeaders.Add("Auth2", Key)
client.Timeout = New TimeSpan(0, 0, 160)

Dim values = New Dictionary(Of String, String) From {
{"param1", "1.00"},
{"param2", "0"},
{"param3", "1.00"},
{"param4", "349000000"}
}

Dim content = New FormUrlEncodedContent(values)


Try
Dim response = client.PostAsync(URL, content).Result

If response.IsSuccessStatusCode Then

Try
Dim OB As Object = JsonConvert.DeserializeObject(Of Object)(response.Content.ReadAsStringAsync().Result)

Catch ex As Exception
Console.WriteLine("error")
End Try
Else
Console.WriteLine("{0} ({1})", CInt(response.StatusCode), response.ReasonPhrase)
End If

Console.ReadKey()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub


and this is the exception I'm getting:
(exception on first try catch,on the Dim response line ):



exception on first try catch



Inner exeption



this is my working C# code:



 static void Main(string args)
{
string URL = "https://myurl.com.do";

String User = "user";
String Key = "key";

Dictionary<string, string> values = new Dictionary<string, string>();

values.Add("param1", "1.00");
values.Add("param2", "0");
values.Add("param3", "1.00");
values.Add("param4", "349000000");


FormUrlEncodedContent content = new FormUrlEncodedContent(values);

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);
client.Timeout = new TimeSpan(0, 0, 160);
client.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/json") );

client.DefaultRequestHeaders.Add("Auth1", User);
client.DefaultRequestHeaders.Add("Auth2", Key);

try
{

HttpResponseMessage response = client.PostAsync(URL, content).Result;
if (response.IsSuccessStatusCode)
{
try
{
string b = response.Content.ReadAsStringAsync().Result;
Dictionary<string, string> dataObjects = JsonConvert.DeserializeObject<Dictionary<string, string>>(response.Content.ReadAsStringAsync().Result);// response.Content.read
object OB = JsonConvert.DeserializeObject<object>(response.Content.ReadAsStringAsync().Result);// response.Content.read
}
catch (Exception)
{


}
}
else
{
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
}
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("Error de conexion");
}
}


what am I missing or doing wrong in vb.net?





This question already has an answer here:




  • Http post error: An existing connection was forcibly closed by the remote host

    2 answers








c# vb.net http post http-post






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 15 '18 at 14:22







Misael Moneró Thompson

















asked Nov 15 '18 at 14:11









Misael Moneró ThompsonMisael Moneró Thompson

316311




316311




marked as duplicate by the_lotus, Community Nov 15 '18 at 18:43


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









marked as duplicate by the_lotus, Community Nov 15 '18 at 18:43


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.










  • 1





    I can't see images. Can you put the text of the exception?

    – the_lotus
    Nov 15 '18 at 14:24






  • 1





    Is there a reason for not typing 'response'? Do you have Option Infer On? You're also dropping explicit typing on other variables - these are 'Object' if you don't have Option Infer On.

    – Dave Doknjas
    Nov 15 '18 at 14:27













  • Thank you all guys! just digging into the inner exeptions found the real issue, the answer is in this link: stackoverflow.com/questions/28453353/…

    – Misael Moneró Thompson
    Nov 15 '18 at 14:33














  • 1





    I can't see images. Can you put the text of the exception?

    – the_lotus
    Nov 15 '18 at 14:24






  • 1





    Is there a reason for not typing 'response'? Do you have Option Infer On? You're also dropping explicit typing on other variables - these are 'Object' if you don't have Option Infer On.

    – Dave Doknjas
    Nov 15 '18 at 14:27













  • Thank you all guys! just digging into the inner exeptions found the real issue, the answer is in this link: stackoverflow.com/questions/28453353/…

    – Misael Moneró Thompson
    Nov 15 '18 at 14:33








1




1





I can't see images. Can you put the text of the exception?

– the_lotus
Nov 15 '18 at 14:24





I can't see images. Can you put the text of the exception?

– the_lotus
Nov 15 '18 at 14:24




1




1





Is there a reason for not typing 'response'? Do you have Option Infer On? You're also dropping explicit typing on other variables - these are 'Object' if you don't have Option Infer On.

– Dave Doknjas
Nov 15 '18 at 14:27







Is there a reason for not typing 'response'? Do you have Option Infer On? You're also dropping explicit typing on other variables - these are 'Object' if you don't have Option Infer On.

– Dave Doknjas
Nov 15 '18 at 14:27















Thank you all guys! just digging into the inner exeptions found the real issue, the answer is in this link: stackoverflow.com/questions/28453353/…

– Misael Moneró Thompson
Nov 15 '18 at 14:33





Thank you all guys! just digging into the inner exeptions found the real issue, the answer is in this link: stackoverflow.com/questions/28453353/…

– Misael Moneró Thompson
Nov 15 '18 at 14:33












1 Answer
1






active

oldest

votes


















1














copy pasted answer from this next link:



Http post error: An existing connection was forcibly closed by the remote host



I think its because you are connecting to "https" url. In this case you have to add following line to your code.



ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;



It will accept "ssl" protocol for your request. "ServicePointManager.ServerCertificateValidationCallback" handler just controls certificate validity.






share|improve this answer






























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    copy pasted answer from this next link:



    Http post error: An existing connection was forcibly closed by the remote host



    I think its because you are connecting to "https" url. In this case you have to add following line to your code.



    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;



    It will accept "ssl" protocol for your request. "ServicePointManager.ServerCertificateValidationCallback" handler just controls certificate validity.






    share|improve this answer




























      1














      copy pasted answer from this next link:



      Http post error: An existing connection was forcibly closed by the remote host



      I think its because you are connecting to "https" url. In this case you have to add following line to your code.



      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;



      It will accept "ssl" protocol for your request. "ServicePointManager.ServerCertificateValidationCallback" handler just controls certificate validity.






      share|improve this answer


























        1












        1








        1







        copy pasted answer from this next link:



        Http post error: An existing connection was forcibly closed by the remote host



        I think its because you are connecting to "https" url. In this case you have to add following line to your code.



        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;



        It will accept "ssl" protocol for your request. "ServicePointManager.ServerCertificateValidationCallback" handler just controls certificate validity.






        share|improve this answer













        copy pasted answer from this next link:



        Http post error: An existing connection was forcibly closed by the remote host



        I think its because you are connecting to "https" url. In this case you have to add following line to your code.



        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;



        It will accept "ssl" protocol for your request. "ServicePointManager.ServerCertificateValidationCallback" handler just controls certificate validity.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 15 '18 at 14:35









        Misael Moneró ThompsonMisael Moneró Thompson

        316311




        316311

















            Popular posts from this blog

            List item for chat from Array inside array React Native

            App crashed after uploaded to heroku server

            Xamarin.iOS Cant Deploy on Iphone