J'ai une commande cURL fournie par WooCommerce:plissement application .NET
curl https://example.com/wp-json/wc/v2/orders \
-u consumer_key:consumer_secret
J'utilise WebClient:
using (WebClient wc = new WebClient())
{
Uri url = new Uri("https://www.myhost.com/wp-json/wc/v2/orders");
System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection();
reqparm.Add("consumer_key", keyValue);
byte[] responsebytes = wc.UploadValues(url, "POST", reqparm);
string responsebody = Encoding.UTF8.GetString(responsebytes);
}
Mais je reçois cette erreur:
IOException: impossible de lire les données à partir de la connexion de transport: une connexion existante a été fermée de force par l'hôte distant.
Qu'ai-je fait de mal ici? Je suis sûr que mon URL et ma clé sont corrects.
EDIT: Avez-juste essayé cela comme suggéré par CmdrTchort et David:
using (WebClient wc = new WebClient())
{
wc.UseDefaultCredentials = true;
wc.Credentials = new NetworkCredential("consumer_key", keyValue);
string responsebody = wc.DownloadString("https://www.myhost.com/wp-json/wc/v2/orders");
}
recevant toujours la même erreur.
EDIT: Je soupçonne que j'ai fourni des informations d'identification non valides je mettrai à jour une fois que cela devient clair ...
m'a donné les informations d'identification erronées. Cependant, cela n'a pas résolu le problème. Je ne comprends pas comment consumer_key:consumer_secret
est censé être représenté dans cette requête. Il y a deux valeurs: consumer_key et consumer_secret (je n'ai été fourni avec consumer_secret auparavant, que j'ai placé où keyValue
est). Je suppose maintenant qu'il est censé être de la forme:
wc.Credentials = new NetworkCredential("consumer_key", "consumer_secret");
où « consumer_key » et « consumer_secret » représentent les valeurs uniques fournies. Cela ne fonctionne pas. Cela commence à devenir légèrement irritant.
En raison du message d'erreur, il ressemble à la manipulation du certificat ou un problème de version SSL/TLS ou non-concordance – Pac0
vous mentionné que vous avez la commande cURL fournie par eux, mais avez-vous testé à partir du poste de travail où vous essayez de frapper via WebClient? Cela pourrait aider à mieux isoler le problème pour savoir si le même problème se produit avec cURL et vous guider si vous devriez regarder votre propre code ou quelque chose entre vous et le service Web. –