【问题标题】:Post request in c # for use the Api to c#在 c# 中发布请求以使用 Api 到 c#
【发布时间】:2017-06-22 09:00:13
【问题描述】:

我尝试使用 vultr api 来创建服务器,我已经成功使用 get 方法来获取数据,但我不明白如何在 post 中制作? 这是创建服务器的命令:

curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/app_change --data 'SUBID=596965' --data 'APPID=2'

这是我的代码:

using System;
using System.Net;
using System.IO;

namespace Http
{
    class Requete
    {
        [STAThread]
        static void Main(string[] args)
        {
            string Data = "--data 'DCID=24' --data 'VPSPLANID=201' --data 'OSID=152'";
            string Reponse = String.Empty;
            StreamWriter Sw = null; // Pour écrire les données
            StreamReader Sr = null; // Pour lire les données

            try
            {
                HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("https://api.vultr.com/v1/server/create");
                Req.Method = "POST"; // POST ou GET
                Req.ContentType = "application/x-www-form-urlencoded"; // La plupart du temps
                Req.ContentLength = Data.Length; // La longueur des données
                Req.Headers.Add("API-Key: XXXXXXXXXXXXXXXXXXXXXX");


                Sw = new StreamWriter(Req.GetRequestStream());
                Sw.Write(Data); // On écrit les données
                Sw.Close(); // Puis on ferme le flux
                Sw = null;

                Sr = new StreamReader(((HttpWebResponse)Req.GetResponse()).GetResponseStream());
                Reponse = Sr.ReadToEnd(); // On choppe la réponse
                Sr.Close(); // Et on ferme
                Sw = null;
            }
            catch (Exception e) // En cas d'exception
            {
                if (Sw != null) // Si le flux est ouvert, on le ferme
                    Sw.Close();
                if (Sr != null)
                    Sr.Close();

                Console.WriteLine(e.Message + "\r\n\r\nL'application va maintenant se terminer...");

                return;
            }

            Console.WriteLine(Reponse);
        }
    }
}

提前谢谢你

【问题讨论】:

    标签: c# api curl post http-post


    【解决方案1】:

    数据值不正确,应该是:

     string Data = "DCID=24&VPSPLANID=201&OSID=152";
    

    另外为了便于阅读,你可以替换:

    Sw = new StreamWriter(Req.GetRequestStream());
    Sw.Write(Data);
    Sw.Close();
    Sw = null;
    

    using (var sw = new StreamWriter(Req.GetRequestStream()))
    {
        sw.Write(Data);
    }
    

    您可以对 StreamReader 执行相同的操作

    【讨论】:

    • 谢谢你的祝福
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多