2017-10-19 9 views
0

Je veux envoyer un message simple en utilisant le service Clickatell.C# clickerell pour envoyer un SMS HTTP GET request

Je ne veux pas lire la réponse, ce sera simple demande GET pour envoyer un message.

Le service fournit la demande ressemble à:

https://platform.clickatell.com/messages/http/send?apiKey=xxxxxxxxxxxxxxxx==&to=xxxxxxxxxxx&content=Test+message+text 

Je l'ai vérifié avec boucle

curl "https://platform.clickatell.com/messages/http/send?apiKey=apiKEY==&to=NUMBER&content=Test+message+text" 

et ça fonctionne vraiment bien.

J'essaie de l'utiliser avec mon application Windows Forms avec requête HTTP Voici le code que je fourni:

var client2 = new HttpClient(); 
client2.GetAsync("https://platform.clickatell.com/messages/http/send?apiKey=apiKEY==&to=NUMBER&content=Test+message+text"); 
App.Write("SMS SEND!"); 

J'ai informations que SMS envoyer, mais je ne l'a pas reçue. Mon ami utilise mon code dans l'application .NET et ça marche pour lui.

Quelque chose me manque?

Peut-être que cela vaut vraiment la peine de mentionner que j'ai besoin d'ajouter manuellement aux références en utilisant System.Net.Http;

EDIT:

J'ai essayé d'ajouter à le faire async, donc je modifier mon code pour:

static void sendSMS() 
     { 
      var client2 = new HttpClient(); 
      var task = client2.GetAsync("https://platform.clickatell.com/messages/http/send?apiKey=API_KEY==&to=MY_NUMBER&content=Test+message+text"); 
      task.Wait(); 
      App.Write("SMS SEND!"); 
     } 

Mais le message SMS d'envoi dans l'application non représentée.

+1

Je sais que vous ne voulez pas lire la réponse à long terme, mais pour les tests et le faire marcher peut-être vous devriez – BugFinder

Répondre

1

Ok je sais que vous utilisez 4.5 .NET et vous avez probablement problème avec une exeption

"La connexion sous-jacente a été fermée: Une erreur inattendue est survenue sur un envoi"

Le bon code il ressemble à ceci: (Vous devez ajouter 'SecurityProtocol' avant reqeust):

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

var client2 = new HttpClient(); client2.GetAsync("https://platform.clickatell.com/messages/http/send?apiKey=apiKEY==&to=NUMBER&content=Test+message+text").Result;

Plus de détails ici https://stackoverflow.com/a/32789483/5816153

+0

C'est vrai! Je vous remercie. – P4TRYK