Le véritable problème ici est qu'il n'existe actuellement aucun support prêt à l'emploi pour envoyer des flux ou des tableaux d'octets dans Flurl. Je prévois d'en ajouter d'autres bientôt, mais avec les détails d'implémentation que vous avez déjà, il est facile de l'ajouter vous-même avec une méthode d'extension. (Pardonnez le C#, nous espérons que vous pouvez traduire à VB.)
public static Task<HttpResponseMessage> PutFileAsync(this FlurlClient client, string filepath)
{
var data = File.ReadAllBytes(filepath);
var content = new ByteArrayContent(data);
content.Headers.Add("Content-Type", "application/octet-stream");
content.Headers.Add("Content-Length", data.Length);
return client.SendAsync(HttpMethod.Put, content: content);
}
Les travaux ci-dessus si vous avez déjà un FlurlClient
, mais comme le docs décrire est une bonne idée d'avoir correspondante string
et Url
extensions, qui peuvent seulement déléguer à la méthode ci-dessus:
public static Task<HttpResponseMessage> PutFileAsync(this Url url, string filepath)
{
return new FlurlClient(url).PutFileAsync(filepath);
}
public static Task<HttpResponseMessage> PutFileAsync(this string url, string filepath)
{
return new FlurlClient(url).PutFileAsync(filepath);
}
Tuck ceux qui étaient absents dans une classe d'aide statique et ils doivent fonctionner de façon transparente avec Flurl:
await uploadurl.PutFileAsync(filepath)
Merci Todd, je vais essayer. –