Est-il possible de créer une requête HTTP dans une fonction Azure? J'essaie de créer un webhook personnalisé qui écoute un service et quand il est déclenché, il appelle un autre service via HTTP en utilisant post.Azure Fonctions appelez http poste à l'intérieur de la fonction
Mon code ressemble à ça:
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
BitbucketRequest data = await req.Content.ReadAsAsync<BitbucketRequest>();
//DO STH WITH DATA TO GET e.g. USER STORY ID
using(var client = new HttpClient()){
client.BaseAddress = new Uri("https://SOME_TARGETPROCESS_URL/api/v1");
var body = new { EntityState = new { Id = 174 } };
var result = await client.PostAsJsonAsync(
"/UserStories/7034/?resultFormat=json&access_token=MYACCESSTOKEN",
body);
string resultContent = await result.Content.ReadAsStringAsync();
}
return req.CreateResponse<string>(HttpStatusCode.OK,"OKOK");
}
Je suppose que le problème est que actuellement HttpRequestMessage occupe socket web et je ne peux pas créer de nouvelles Demande de Http.
erreurs que je trouve dans les détails Exceptions:
- La connexion sous-jacente a été fermée: Une erreur inattendue est survenue sur un envoi.
- Impossible de lire les données de la connexion de transport: une connexion existante a été fermée de force par l'hôte distant.
- Socket Exception Code d'erreur: 10054
Trouvé le problème Par défaut, aucun support pour TLS 1.2 a été activé (qui était utilisé par le point de terminaison que j'appelais). System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; –
Vous avez raison; Cela a aussi fonctionné pour moi! –